次のコードを検討してください。
typedef int type1;
typedef int type2;
template <typename>
struct some_trait;
template <>
struct some_trait<type1>
{
static const int something=1;
};
template <>
struct some_trait<type2>
{
static const int something=2;
};
コンパイラが認識するのは の 2 つの特殊化であるため、失敗しますsome_trait<int>
。
これを回避する最善の方法は何ですか?