0

次のように定義された列挙が与えられた場合:

DEFINE_ENUM(name,enumerators)  \
enum name                                                              \
{                                                                      \
    BOOST_PP_SEQ_ENUM(enumerators)                                     \
}; 

DEFINE_ENUM() マクロの一部として定義され、列挙のすべてのメンバーを含むベクトルを返す関数を定義するにはどうすればよいですか?

以下は、上記のマクロ定義の最後に追加されたもので、これまでのところほぼ同じです。

std::vector<name> MembersOf(name AnyItem) {     \
    return {BOOST_PP_SEQ_ENUM(enumerators)}; \
};

ただし、これは無効に終了したマクロ定義を報告しており、それを含むファイルが複数のファイルに含まれている場合、すべての DEFINE_ENUM() の MemberOf() が複数定義されていると主張しています。

4

0 に答える 0