>>898
レスありが�d。
それって結局 map を作っちゃうって事?
そのまま書くのに比べて何が利点なのかな?
俺が考えてたのは
<errorcode.inc>
ERR_ENTRY(ERR_OK, 0, "No Error"),
ERR_ENTRY(ERR_INVALID_PARAM, 1, "<description>"),
-以下略-
<errorcode.h>
#undef ERR_ENTRY
#define ERR_ENTRY(name, value, desc) name = value
enum ERR {
#include "errorcode.inc"
};
extern const char* ERR_NAME_TBL[];
<errorcode.cpp>
#undef ERR_ENTRY
#define ERR_ENTRY(name, value, desc) value
const char* ERR_NAME_TBL[] = {
#include "errorcode.inc"
};
<foobarbaz.cpp>
#include "errorcode.h"
int main() {
std::cout << ERR_NAME_TBL[ERR_OK] << std::endl;
return 0;
}
こんな感じかなぁと思ったんだけど、結局配列作っちゃうからマクロな意味が
あんまりないかなと思って。コンパイル時にすべてが解決されるような
いい方法があるのかなぁ?