#define Enterprise #if Professional || Enterprise #define Advanced #endif namespace Megacorp.Data { #if Advanced class PivotTable {...} #endif }is valid because the #define directives precede the first token (the namespace keyword) in the source file. end example] [Example: The following example results in a compile-time error because a #define follows real code:
#define A namespace N { #define B #if B class Class1 {} #endif }end example] Paragraph 41 A #define may define a conditional compilation symbol that is already defined, without there being any intervening #undef for that symbol. [Example: The example below defines a conditional compilation symbol A and then defines it again.
#define A #define AFor compilers that allow conditional compilation symbols to be defined as compilation options, an alternative way for such redefinition to occur is to define the symbol as a compiler option as well as in the source. end example] Paragraph 51 A #undef may "undefine" a conditional compilation symbol that is not defined. [Example: The example below defines a conditional compilation symbol A and then undefines it twice; although the second #undef has no effect, it is still valid.
#define A #undef A #undef Aend example]
| |
Jagger Software Ltd | |
Company # 4070126 | |
VAT # 762 5213 42 |