1. ホーム
  2. c++

[解決済み] テンプレートクラスをtypedefするには?重複

2023-08-13 02:46:41

質問

どのようにすれば typedef a template class ? のようなものです。

typedef std::vector myVector;  // <--- compiler error

2つの方法を知っています。

(1) #define myVector std::vector // not so good
(2) template<typename T>
    struct myVector { typedef std::vector<T> type; }; // verbose

C++0xで何か良い方法はないでしょうか?

どのように解決するのですか?

はい、「"」といいます。 エイリアステンプレート ," と呼ばれるもので、C++11 の新機能です。

template<typename T>
using MyVector = std::vector<T, MyCustomAllocator<T>>;

とすると、期待通りの使い方ができます。

MyVector<int> x; // same as: std::vector<int, MyCustomAllocator<int>>

GCCは4.7から、Clangは3.0から、MSVCは2013 SP4からサポートされています。