1
どのように任意のtypedefsなしでこの効果を得ることができますか?クラスの型テンプレート引数の範囲の範囲
#include <type_traits>
#include <iostream>
typedef int Primary;
typedef float Secondary;
template<Class C, std::enable_if<std::is_same<Class, Primary>::value || std::is_same<Class, Secondary>::value> = 0>
class Entity {
public:
template<std::enable_if<std::is_same<Class, Secondary>::value>::type = 0>
void onlyLegalForSecondaryEntities() {
std::cout << "Works" << std::endl;
}
};
int main() {
Entity<Secondary> e;
e.onlyLegalForSecondaryEntities();
return 0;
}
Entity
が唯一のテンプレート引数としてPrimary
またはSecondary
でインスタンス化することができるように、これを生成するために、よりエレガントな方法はありますか?