微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C++0x 中的类型别名有什么替代方法吗?

如何解决C++0x 中的类型别名有什么替代方法吗?

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

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;
};

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。