我正在尝试在类模板的构造函数中初始化 vector 成员变量。我从编译器中收到“‘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;
};
最佳答案
如果 vector
的初始大小为 numPeripherals
个元素,则使用
PeripheralSystem(uint32_t numPeripherals = 0) : peripherals(numPeripherals) {};
现在 peripherals
将具有 numPeripherals
值初始化(如果 T
是类类型,则默认初始化)T 的实例
。
关于c++ - 如何在类模板的构造函数中初始化 vector 成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24393319/