C++ 无法从 typedef 中创建模板或将 typedef 制作为模板类。我知道如果我继承并使我的类成为模板,它就会起作用。
例子:
// Illegal
template <class T>
typedef MyVectorType vector<T>;
//Valid, but advantageous?
template <class T>
class MyVectorType : public vector<T> { };
这样做是否有利,以便我可以“伪造” typedef 或者是否有更好的方法来做到这一点?
C++0x 将使用以下方式添加模板类型定义using
关键词。
您的解决方案声明了一个新类型,而不是类型“别名”,例如你不能初始化一个MyVectorType &
(参考)与vector<T>
。这对你来说可能不是问题,但如果是,但你不想在代码中引用向量,你可以这样做:
template <typename T>
class MyVectorType {
public:
typedef std::vector<T> type;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)