【发布时间】:2016-06-07 08:14:56
【问题描述】:
我正在使用boost::bimap 将整数映射到字符串:
typedef boost::bimap<int, std::string> ParamIDStrings;
typedef ParamIDStrings::value_type id_pair;
extern const ParamIDStrings paramIDStrings;
我正在尝试创建引用变量,以便编写如下代码:
paramIDStringsByID.at(5);
// Instead of having to remember which side is which:
paramIDStrings.left.at(5);
但我很难解释Boost documentation,以了解bimap::left 是什么类型。
我试过了:
// Compiler throws error: invalid use of template-name 'boost::bimaps::bimap' without an argument list
boost::bimaps::bimap::left ¶mIDStringsByID = paramIDStrings.left;
// Compiler throws error: 'paramIDStrings' does not name a type
paramIDStrings::left_map ¶mIDStringsByID = paramIDStrings.left;
// Compiler throws error: invalid initialization of reference of type boost::bimaps::bimap<int, std::__cxx11::basic_string<char> >::left_map
boost::bimaps::bimap<int,std::string>::left_map &cParamIDStringsByID = cParamIDStrings.left;
【问题讨论】:
-
你试过
auto &还是不在乎? -
@nwp 哇,谢谢。现在我知道
auto有什么用。如果你回答我会接受。不过,如果只是为了了解如何阅读这些令人困惑的 Boost 文档,了解实际类型是什么会很好。 -
boost::bimaps::bimap<int,std::string>::left_map & lmap怎么样? -
@DevanshMohanKaushik 我试过了,但没有用(我在我的问题中添加了错误消息)。
-
这很奇怪。因为
boost::bimap< int,std::string > mymap;boost::bimaps::bimap<int,std::string>::left_map & lmap= mymap.left;对我来说很好用。
标签: c++ boost types boost-bimap