标签: 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>
我需要不是在运行时,而是在编译时(在我的标题库中提供它。)
是否可以使用C ++ 03和Boost?
答案 0 :(得分:7)
这是一种名为TypeLists的机制;据我所知,它是由Andrei Alexandrescu在 Modern C ++ Design 中首次提出的。在Alexandrescu的库Loki中有一个TypeLists的实现。我也认为Boost.MPL有一个类似的结构:vector。
答案 1 :(得分:0)
typedef std::pair<int, std::string> a; std::map<a::first_type, a::second_type> mymap;
但是必须在编译时知道这些类型。有办法解决它,但它们非常复杂。