在下面的代码中,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;
}