0

我在两个不同的设备上有相同版本的 boost,但行为是不同的

lexical_cast<uint>("-1")

文档指出它应该给我 INT_MAX(2 的补码翻转),但是在一台机器上我得到一个异常抛出,而在另一台机器上我得到 INT_MAX。

4

1 回答 1

1

显然,如果您查看 boost 的输入代码,则使用这样的代码和在运算符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在不同机器上表现不同。

于 2016-02-19T18:47:21.357 回答