std::ostringstream长度问题(MSVC)
// 简单的三行代码初看起来没什么问题 std::ostringstream oss; oss nameLenHex totalPageHex fileNameHexStr contentLenHex fileHexStr; return oss.str(); // 某天fileHexStr长度大于2G时程序不正常了。。。 // AI结论如下这确实是 MSVC std::ostringstream/stringbuf 的问题 // 它的 str() 在有超过 INT_MAX2GB数据时会被截断。无论 Debug 还是 Release 模式都一样。 // 修正后的代码 std::string result nameLenHex totalPageHex fileNameHexStr contentLenHex; result fileHexStr; return result;MSVC std::ostringstream/stringbuf 的问题它的 str() 在有超过 INT_MAX2GB数据时会被截断。无论 Debug 还是 Release 模式都一样。之前那次的测试用的 cl /MDd 没有加 /O2这次测试 /MD /O2 也复现了所以不是 Debug 模式特有的。