Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Ivan_Kiselev
Beginner
60 Views

#define MYPLATFORM(name) MYDEF_##name()

This code doesn't compiled by Intel's C++ Compiler 11:
#define MYPLATFORM(name) MYDEF_##name()
#if !MYPLATFORM(x86_MMXEXT) && !MYPLATFORM(x86_SSE)
...
Compiler will generate an error:
error : function call is not allowed in a constant expression
0 Kudos
1 Reply
Andreas_Klaedtke
Beginner
60 Views

The actual problem does not seem to be the compiler, but the pre-processor.
It should depend on the definition of MYDEF_x86_MMXEXT and MYDEF_x86_SSE.
If they are macros that do not expect a parameter, eg:
[cpp]#define MYDEF_x86_MMXEXT() x[/cpp]
It should work and version 11.1 of icpc compiles the code.
Reply