C++0x 中的类型别名是否有替代方案?
Is there any alternative for type alias in 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 是一个非常糟糕的主意,但是,我想知道是否有一些方法可以模拟 type alias.
以下代码可能有效,但 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>::type
和 typename arr<T>::type
而不是 arr<T>
。
我想为 std::array<T, 32>
创建别名 arr
。
template<typename T>
using arr = std::array<T, 32>;
但是,它不适用于仅支持 C++0x(无类型别名)的 GCC 4.4.6。
我认为现在使用 GCC 4.4.6 是一个非常糟糕的主意,但是,我想知道是否有一些方法可以模拟 type alias.
以下代码可能有效,但 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>::type
和 typename arr<T>::type
而不是 arr<T>
。