我正在尝试使用std:map
类型的键和值制作std::any
Visual Studio 2017
std::map<std::any, std::any> m("lastname", "Ivanov");
std::cout << std::any_cast<std::string>(m["lastname"]) << std::endl;
给我一个
error: binary '<' : no operator found which takes a left-hand operand of type 'const_Ty'
最佳答案
std::any
没有二进制“<”运算符(小于)。如何“索引” std::map
元素的默认方法。
解决方案可能包括:
#include <map>
#include <any>
int main() {
auto elements = std::initializer_list<std::pair<const std::any, std::any>>{};
auto mymap = std::map(elements, [](const std::any& lhs, const std::any& rhs){return false;});
}
然后实现比较功能,而不是返回
false
。try it yourself
关于c++ - std::map <std::any,std::any>麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58058719/