0
所以我建立了我的boost::mpl::map
对象,其中包含一些键和类型的混合。我现在要实例地图的实例,例如,我在地图上的每个type
的一个实例:如何实例化并访问boost mpl类型?
using namespace boost::mpl;
using MyMap = map<
pair<int, double>,
pair<double, double>,
pair<bool, int>>;
int main()
{
// create the map:
MyMap myMap;
// now I want a reference to the element indexed by "int"
using RefType = at<MyMap, int>::type&;
RefType myRef(myMap); // compile error!
}
我得到的错误是沿着线的东西:
error: cannot convert 'MyMap {aka map<...>} to blarghh {aka int}
很明显,我应该获得某种“索引”值(可能是boost::mpl::map::order
?)。那么,如何实际访问(即获得引用)这些关联的mpl
容器中的元素?另外,这个(特别是)如何完成的文档在哪里?
对不起,我修复了丢失的逗号。我想实例化地图,使得我有一组实例化的所有'types',然后我想引用其中一个值(为了这个例子)。 'std'等价物可能会创建一个'tuple'的实例并获得对其实例化类型之一的引用。这有意义吗?据我了解,你的例子只是创建一个双精度和对它的引用。 – arman 2014-10-01 03:12:27
我在想也许我需要为此加强融合?在那种情况下,我的下一个问题是,我如何将我的'boost :: mpl :: map'转换为'boost :: fusion :: map',然后我可以实例化? – arman 2014-10-01 03:19:42
你试图完成的更高层次的目标是什么?我很难理解你为什么需要'{type:default-constructed-other-type}'的映射。 – 2014-10-01 05:47:13