c++ - 为模板化类创建类型别名

标签 c++

而不是使用

std::vector<Object> ObjectArray;

我愿意这样

MyArray<Object> ObjectArray;

保留所有 std::vector 方法。 (如 push_back()、reserve() 等)

但是,使用

typedef std::vector MyArray;

不会工作。我应该改用模板吗?怎么办?

最佳答案

您真正想要的是一个模板化的 typedef。不幸的是,当前版本的 C++ 不支持它们,但它们将添加到 C++0x 中。

目前,这里有一个可能的解决方法:

template<class T> struct My {
    typedef std::vector<T> Array;
};

My<Object>::Array ObjectArray

这是否比直接使用 std::vector 更好,我将留给您来决定。

关于c++ - 为模板化类创建类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544842/

相关文章:

c++ - 从 lambda 中调用基本成员函数时出错

c++ - 用 C++ 为当前机器生成 GUID 的简单方法是什么?

c++ - Vector<double> C++ 的索引/最大值/最小值

c++ - 通过 ref 传递 const 指针比通过值传递更好?

c++ - const 对象的无锁重载和共享

c++ - 判断两个矩形是否相交

c++ - 虚拟表真正存储在哪里,为什么我们不能修改它们?

c++ - 使用 boost::posix_time 时出现编译错误

c++ - 在 linux 上运行 cygwin 编译的 c++ 程序

c++ - 是否可以同时从 C++ std::vector 或 std::deque 中删除和获取对象的拷贝?