Я определил следующий тип d
typedef boost::variant<string, double> flex_String_Double;
map<string, flex_String_Double> FDParam;
, и FDParam имеет следующую форму:
{"setNumber", 3}
{"Money", 3.152}
{"Fight", "No"}
Что я хотел сделать (ожидая получить 6.152):
cout << FDParam["setNumber"] + FDParam["Money"] << endl;
Однако эта команда не работает и выдает следующую ошибку:
Invalid operands to binary expression ('std::__1::map<std::__1::basic_string<char>, boost::variant<std::__1::basic_string<char>, double>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::variant<std::__1::basic_string<char>, double> > > >::mapped_type' (aka 'boost::variant<std::__1::basic_string<char>, double>') and 'double')
Кто-нибудь может мне помочь решить эту проблему?