0
我想選擇從特質類的模板,如以下:部分專用模板爲特徵的成員類型
template<typename T>
class JobTypeA { };
template<typename T>
class JobTypeB { };
template<typename T>
class JobTraits
{
/* nothing */
};
class A { };
template<>
class JobTraits<A>
{
typedef JobTypeA Type;
};
class B {};
template<>
class JobTraits<B>
{
typedef JobTypeB Type;
};
class JobTarget1 { };
class JobTarget2 { };
template<typename T, typename U>
class JobUser
{
public:
typedef typename JobTraits<T>::Type<U> JobType;
void doSomething (void)
{
JobType j;
/*... */
}
};
int
main (void)
{
JobUser<B, JobTarget1> j;
}
以上不會編譯因爲「類型定義不完全類型的」在專門的特質類。我使用g ++ 4.7.2在std = C++ 11中使用了'別名模板'。但是VS2010目前還不支持。有沒有任何解決方法來實現沒有'別名模板'相同。
工程。謝謝 :) – 2013-03-20 12:55:34