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

myW*_*SON 2 c++ boost types

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

a.pushType<int>
a.pushType<std::string>
a.pushType<char>
Run Code Online (Sandbox Code Playgroud)

所以我们可以打电话

std::map<a.T1, a.T3> mymap;
std::map<a.T1, a.T2> mymap;
someClass<a.T1, a.T2, a.T3>
Run Code Online (Sandbox Code Playgroud)

我需要它不是在运行时,而是在编译时(在我的标题库中提供它.)

是否可以使用C++ 03和Boost?

Pau*_*nta 7

这是一种名为TypeLists的机制; 据我所知,它是由Andrei Alexandrescu在Modern C++ Design中首次提出的.在Alexandrescu的图书馆Loki中有TypeLists的实现.我也认为Boost.MPL有一个类似的结构:向量.