通常のテンプレート構造体は、特殊化できます。
template<typename T>
struct X{};
template<>
struct X<int>{};
C ++ 11は、using
テンプレートtypedefを表現するための新しいクールな構文を提供しました。
template<typename T>
using YetAnotherVector = std::vector<T>
構造体テンプレートの特殊化と同様の構造体を使用して、これらのテンプレート特殊化を定義する方法はありますか?私は以下を試しました:
template<>
using YetAnotherVector<int> = AFancyIntVector;
ただし、コンパイルエラーが発生しました。これはどういうわけか可能ですか?
番号。
ただし、エイリアスは次のように定義できます。
template<typename T>
using YetAnotherVector = typename std::conditional<
std::is_same<T,int>::value,
AFancyIntVector,
std::vector<T>
>::type;
お役に立てば幸いです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加