我正在尝试为一个类实现向量like和map like []操作符。但是我从我的编译器(g++和clang++)那里得到了错误消息。发现它们仅在类还具有将运算符转换为整数类型时才会发生。第一个问题是,我不知道为什么当类有到int的转换操作符时,编译器不能区分[](const std::string&)和[](size_t)。第二个...我需要转换和索引运算符。如何解决这个问题?作品:
#inc
home/support/attributes.hpp:1203: error: no match for 'operator<<' in 'out << val'
并列出了ostream的重载操作符。既然知道BOOST_STRONG_TYPEDEF定义了一个转换操作符到原始类型,那么在使用operator<<时,编译器不应该隐式地将标识符转换为std::string