#define
ディレクティブで静的変数を宣言することは可能ですか?
// header file
#define TEXT_ENUM
#ifdef TEXT_ENUM
#define TEXT_HANDLING_MACRO \
static const char * TEXT[]; \
static const char * getText( int _enum ) { \
return TEXT[_enum]; \
}
#else
#define TEXT_HANDLING_MACRO
#endif
struct Foo {
TEXT_HANDLING_MACRO
};
// cpp file
#include "foo.h"
const char * Foo::TEXT[] = {
"ONE",
"TWO",
"THREE",
0
};
このヘッダー ファイルを他のファイルにインクルードしてアクセスしようとしたときに、コンパイラが static const char * を解決するFoo::TEXT[]
方法