【发布时间】:2018-01-23 15:47:26
【问题描述】:
我有一个Dynamic 类,可以存储不同的类型:int、double、std::vector<int>、std::vector<double> 等。我有大约 50 个这样的类型。
我希望我的 Dynamic 类型有一个构造函数,我们提供两个信息:
- 要存储的类型
- 用于在 Dynamic 类中构造类型的参数
我很期待这样的东西
const Dynamic x<std::vector<double>>{10};
在适当位置构造一个动态对象,该对象的 std::vector<double> 长度为 10。
PS:我可以用C++11,不能用RTTI
【问题讨论】:
-
构造函数不能有显式模板参数。为什么你不能使用 RTTI 却不得不做这样的事情?
-
我不清楚您究竟想要实现什么,但模板化构造函数上的this question 可能是相关的。本质上,你不能为构造函数提供模板参数,它们都必须推导出来。
-
@Passer By:我正在设计一个库,我的一些客户在没有 RTTI 的情况下编译。例如,我需要这样一个
Dynamic对象来加载 JSON 文件。 -
@François:谢谢。我想我需要忘记这个构造函数。太糟糕了。
标签: c++ c++11 templates constructor