在尝试确保两个变量的升序时,我在 Visual Studio 2012 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
有什么好的解释,只是为了确保不再陷入类似的陷阱?