C++:我们可以收集类型吗?

标签 c++ boost types

我想知道我们是否可以做类似的事情

a.pushType<int>
a.pushType<std::string>
a.pushType<char>

所以我们可以调用

std::map<a.T1, a.T3> mymap;
std::map<a.T1, a.T2> mymap;
someClass<a.T1, a.T2, a.T3>

而且我不是在运行时而是在编译时需要它(以便在我的仅 header 库中提供它。)

C++03 和 Boost 有可能吗?

最佳答案

这是一种称为 TypeLists 的机制;据我所知,它最早是由 Andrei Alexandrescu 在 Modern C++ Design 中提出的。 Alexandrescu 的库中有一个 TypeLists 的实现,Loki .我还认为 Boost.MPL 具有类似的构造:vector .

关于C++:我们可以收集类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8306743/

相关文章:

C++ DXUT 构建/使用

c++ - 预声明类型定义的 boost::variant

c++ - Boost::Spirit::Qi 的简单语法模板编译错误

oracle - 多次插入类型表集合

c++ - 传递 `int *[LENGTH]` 而不是 `int [][LENGTH]` 可以吗?

c++ - 如何通过 curlpp 检索响应 cookie?

c++ - 在容器的两端插入或删除后,std::deque 的迭代器是否会失效?

c++ - 在 C++ 中的主线程中安排工作作业并接收回调

c# - 如何创建实现少量接口(interface)(或接口(interface)子集)的类型变量?

generics - 泛型类型如何适应类型层次结构?