虽然试图确保两个变量的升序,我遇到奇怪的异常在Visual Studio中,可以通过下面的代码片段来说明2012 C++编译器C++分配副作用
double x1 = 2;
double x2 = 1;
std::tie(x1, x2) = std::minmax(x1, x2);
std::cout << "x1 = " << x1 << ", x2 = " << x2 << "\n";
人会想到, x1是1,x2是2.但它们不是。相反
//output:
//x1 = 1, x2 = 1
有什么好的解释,只是为了确保不会再陷入类似的陷阱吗?