在c++11中我们可以使用using定义别名,例如:
我们定义一个模板,使用using
template<typename T>
using vec = std::vector<int MyAlloc<int>>;
//使用
vec<int> coll;
//等同于
std::vector<int MyAlloc<int>> coll;
我们使用#define 或者 typedef 试试;
#define Vec<T> template<typename T> std::vector<int MyAlloc<int>>;
//于是
Vec<T> coll;
template<typename T> std::vector<int MyAlloc<int>>; //这个不是我们想要的
typedef std::vector<int MyAlloc<int>> vec; //这个也不是我们想要的
使用#define 和 typedef 达不到相同的效果。