![]() |
1
3
我会使用Boost的MPL和Fusion库。有两种方法可以结束类型列表:生成它们或显式定义它们。前者更灵活一些,但很难说哪一个适合你,因为我们不知道你是如何得到你的价值观的。 在任何情况下,生成:
或明确说明:
无论哪种方式,都可以这样使用:
|
![]() |
2
0
将不同类型的类放入STL容器的唯一方法是,容器包含指向某个基类型的指针(引用不起作用,因为它们不是默认可构造的),并且要收集的对象都继承自该类型。请注意,从基类继承的类型的容器(或任何模板类)不会从基类型的容器继承。你可以使用void*但是你需要做很多丑陋和危险的铸造,你必须记得自己释放记忆。为什么不编写一个固定大小的数组类,允许您在构造函数中设置大小?如果你用araray作为包装器来写的话,应该不会有太多的工作。如果您想使用一些基于智能指针的解决方案,请不要尝试使用auto\u ptr,因为复制语义对于STL容器来说是错误的,可以使用类似boost shared\u ptr的方法。 |
![]() |
3
0
你不会说为什么你想要一个不同大小的静态数组的集合。这很奇怪。为什么不使用动态大小的数组集合? 您的选择是:
|
![]() |
apetrai · 我应该如何假设算法使用哪种迭代器类别? 3 年前 |
![]() |
ridiculous_fish · std::是否保证短路? 3 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 3 年前 |
![]() |
johnco3 · 初始化固定C数组成员结构 7 年前 |
![]() |
mans · 为什么出现此错误:constexpr在此处无效 7 年前 |
![]() |
juztcode · 在C++中尝试捕获-创建了多少个对象 7 年前 |
![]() |
Steven Scott · 忽略元素的基于范围的for循环 7 年前 |