C++を使用する(Visual Studio)私は、列挙型に変換するためのソリューションを見つけるしようとしています。私は妥当な解決策であると思われるXマクロス(http://drdobbs.com/cpp/184401387)に出くわしましたが、クラス内で作業するのは苦労しています。私が見たすべての例は、クラスの外で定義されたすべてを示しています。C++:Xマクロを使用してクラス内で列挙型と文字列型を定義しますか?
// ColorNames.h
X(Red, "Red"),
X(Blue, "Blue"),
...
// MyClass.h
class MyClass
{
public:
MyClass();
virtual ~MyClass();
#define X(a, b) a
enum Colors {
#include "ColorNames.h"
};
#undef X
#define X(a, b) b
char *colorNameStrings_[] = {
#include "ColorNames.h"
};
#undef X
}
IDEを使用すると、ヘッダファイル内のデータメンバ変数を初期化することはできませんので、私は推測するライン*colorNameStrings_[] =...
にチョーク?これをどのように機能させるには?
なぜマクロを使うのか? –
私の目標は、文字列マッピングへの列挙を持つことです。 Xマクロスの考えは、マッピングが同期していることを保証することです。 – User