此示例代码是否在所有系统上导致两个相等的值?
#include <limits>
#include <iostream>
#include <string>
int main() {
std::cout << std::numeric_limits<std::streamsize>::max()<< '\n';
std::string example;
std::cout << example.max_size() << '\n';
}
无论在理论上还是在实践中都是绝对不能保证的。例如。在我的机器上,它会打印:
9223372036854775807
4611686018427387903
首先,它是Windows上MSYS2编写的64位GCC 10.2.0。