【发布时间】:2013-12-10 10:42:15
【问题描述】:
我尝试通过使用operator+=() 将boost::assign 与std::map 一起使用,但我无法成功。
在我的代码下面
#include <boost/assign/std/map.hpp>
#include <boost/assign/list_inserter.hpp>
using namespace boost::assign;
typedef map<string,char> Data;
Data dt;
dt += ("CIAO", 'C'),("SALUT",'S');
我有以下错误
/usr/local/include/boost/assign/list_inserter.hpp|113| error:
no matching function for call to ‘std::map<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, char,
std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, char> > >::insert(char&)’
我在这里遗漏了什么吗?我是否必须为此容器定义一个std::less 才能使其工作?
【问题讨论】: