我在两个不同的设备上有相同版本的boost,但
的行为却不同lexical_cast<uint>("-1")
文档声明它应该给我INT_MAX(2&#39; s补码翻转),但在一台机器上我得到一个异常抛出,而在另一台机器上我得到INT_MAX。
答案 0 :(得分:1)
显然,如果您查看lexical_cast
的提升代码,则会使用interpreter << arg; interpreter >> result
之类的代码和>>
运算符
this->setg(start, start, finish);
std::basic_istream<CharT> stream(static_cast<Base*>(this));
stream.unsetf(std::ios::skipws);
它使用std::basic_istream
因此不同版本的libstdc ++会导致lexical_cast
在不同的计算机上表现不同。