Hi E.,


"C++11 [macro.names]/2 forbids macro-izing keywords when C++ Standard Library headers are included. The headers now emit compiler errors if they detect macro-ized keywords. (Defining _ALLOW_KEYWORD_MACROS allows such code to compile, but we strongly discourage that usage.) As an exception, macro-ized new is permitted by default, because the headers comprehensively defend themselves by using #pragma push_macro("new")/#undef new/#pragma pop_macro("new"). Defining _ENFORCE_BAN_OF_MACRO_NEW does exactly what its name implies."

Hope that helps!

Ho Cheung
Cell: (775) 388-2368

On Wed, Mar 19, 2014 at 2:54 AM, E. Vast <e.vast@erasmusmc.nl> wrote:
Hi all,

I would like to compile the latest VXL (1.17) with Visual Studio Professional 2012 (version 11, update 4). However I receive a lot of C4005/C1189 errors/warnings:

3>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xkeycheck.h(191): warning C4005: 'export' : macro redefinition
3>          d:\mevislab2.5.1\emc\thirdparty\modules\external\vxl\vxl-1.17.0_build\vcl\vcl_compiler.h(273) : see previous definition of 'export'
3>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xkeycheck.h(242): fatal error C1189: #error :  The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.

I only show the first one here. Is there a solution for this problem? Can VXL be compiled with VS12? I found one other mailing post with the same problem that mentioned that it works with 1.17, but it doesn't work for me. 


Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
Vxl-users mailing list