以下のコードでは、 Foo<T>::setValue
whereT
がTYPE
egBar::TYPE
およびBaz:TYPE
.
Foo<T>::setValue
したがって、名前を付けずに特殊化するのを助けていただき、Bar
and Baz
、そのようなクラスが数十ある可能性があるためです。
class Bar
{
public:
enum TYPE{ ONE , TWO };
};
class Baz
{
public:
enum TYPE{ SIX , TEN };
};
template<typename T>
class Foo
{
public:
void setValue(){} // Need a different setValue if T is a class enum
private:
T m_value;
};
int main()
{
Foo<int> f1;
Foo<Bar::TYPE> f2;
Foo<Baz::TYPE> f3;
return EXIT_SUCCESS;
}