【发布时间】:2011-04-26 10:42:39
【问题描述】:
所以不久前我在玩 Boost.Extension 示例。 They used
std::map<std::string, factory<computer> > computers;
computers.swap(types.get());
但是当我开始移植项目from bjam to premake to visual studio project 2008 时,我发现我不能使用他们用于创建地图的方法。我总是在那条线上得到Compiler Error C2512(实际上是在line 74 inside Boost.Extension type_map.hpp)。所以I used way of creating a link to a map:
map<string, factory<computer> >& computers(types.get());
(他们在some of there tutorials 中使用)并且全部编译。我对 C++ 很陌生,可能不太了解。
那么在这种情况下和一般情况下,从链接创建地图与简单创建地图有什么区别?
更新 - 完整的错误消息
错误 1 错误 C2512: boost::extensions::basic_type_map::type_map_convertible::type_holder: 没有合适的默认构造函数 可用 c:\users\avesta\downloads\extension-svn-source\boost\extension\type_map.hpp 74 多重继承
【问题讨论】:
-
错误信息是否告诉你哪个类缺少默认构造函数?
标签: c++ object map reference boost-extension