对于C++0x中的类型别名,有其他选择吗



我想为std::array<T, 32>创建一个别名arr

template<typename T>
using arr = std::array<T, 32>;

但是,它不适用于仅支持C++0x(没有类型别名(的GCC 4.4.6。

我认为现在使用GCC 4.4.6是一个非常糟糕的主意,但是,我想知道是否有一些方法可以模拟类型的别名

下面的代码可能有效,但arr并不完全是std::array<T, 32>,所以我想要一个更好的解决方案。

template<typename T>
struct arr : public std::array<T, 32>;

在别名模板成为一种东西之前,通常会这样写:

template<typename T>
struct arr {
typedef std::array<T, 32> type;
};

T是模板参数时,您必须使用arr<T>::typetypename arr<T>::type而不是arr<T>

最新更新