typeid
/を使用して、type_info
何らかの型がenum
(任意の列挙子) であるかどうかを検出できますか?
以下は、変数に型があるかどうかを検出するためにうまく機能しますint
template<typename T>
bool is_int( T var )
{
return strcmp( typeid(T).name(), typeid(int).name() ) == 0;
}
しかし、列挙型に同様のバージョンを使用することはできません - name() によって返される文字列は Linux と Windows で異なります
template<typename T>
bool is_enum( T var )
{
// can I use typeid here?
// eg. string_contains( typeid(var).name(), "enum" );
}
Boost でテンプレート化されたバージョンを見たことがありますが、このライブラリはまだ使用できません...