Enumと文字列をマクロでうまく対応させる方法 [C++]
Visual C++ Team Blog : Enums, Macros, Unicode and Token-Pasting
http://blogs.msdn.com/vcblog/archive/2008/04/30/enums-macros-unicode-and-token-pasting.aspx
MYENUM(dog)
MYENUM(cat)
MYENUM(fish)
MYENUM(bird)
And the following C++ code:
enum Animal {
#define MYENUM(e) _##e,
#include "animal.inc"
#undef MYENUM
};
wchar_t* AnimalDescription[] = {
#define MYENUM(e) L"_" L#e,
#include "animal.inc"
#undef MYENUM
};
これは目からうろこだった。
汚いマクロ汚いといわれていても、これ他の言語でやれるかっていったらやれないもんなぁ。まさに必要悪。
http://blogs.msdn.com/vcblog/archive/2008/04/30/enums-macros-unicode-and-token-pasting.aspx
MYENUM(dog)
MYENUM(cat)
MYENUM(fish)
MYENUM(bird)
And the following C++ code:
enum Animal {
#define MYENUM(e) _##e,
#include "animal.inc"
#undef MYENUM
};
wchar_t* AnimalDescription[] = {
#define MYENUM(e) L"_" L#e,
#include "animal.inc"
#undef MYENUM
};
これは目からうろこだった。
汚いマクロ汚いといわれていても、これ他の言語でやれるかっていったらやれないもんなぁ。まさに必要悪。
コメント 0