【发布时间】:2014-06-24 18:00:15
【问题描述】:
我正在尝试在类模板的构造函数中初始化向量成员变量。我从编译器收到“'T' 不引用值”错误,因为 T 引用了一个类,所以我不能用这种格式做我想做的事。请问构造函数的正确格式是什么? (我猜我需要根据constructor 将 T 转换为 const val_type?)
template <class T>
class PeripheralSystem {
public:
PeripheralSystem(uint32_t numPeripherals = 0) : peripherals(numPeripherals, T) {};
virtual ~PeripheralSystem();
private:
std::vector<T> peripherals;
};
【问题讨论】:
-
你到底想做什么?默认构造 numPeripherals 对象?
-
如果我猜对了你想要做什么,只要从你的构造函数中删除
, T就可以解决它。 -
@DrewDormann 不适用于 c++11
-
是的,谢谢,构造一个包含 numPeripherals 个 T 类对象的向量。
-
@Slava 所以?还有一个只需要大小的构造函数。
标签: c++ templates vector constructor stl