2

一般的に、私たちはできる

typedef std::vector<int> container1;
typedef std::vector<char> container2;

しかし、次のようなことはできないようです。

typedef vector container;
container<int> ins;

これを達成する方法はありますか?私が考えることができるのは、マクロを使用することです。

4

1 に答える 1

11

C++11 エイリアスはこれを可能にします:

#include <vector>

template<class T>
using Vec = std::vector<T>;   
Vec<int> v;   // same as std::vector<int> v;

これも見る

同様の方法で、C++11 の typedef を次のように書き換えることができます。

using container1 = std::vector<int>;
using container2 = std::vector<char>;

これらは、質問の typedef とまったく同じです。

于 2013-06-15T03:13:54.323 に答える