6

2 つの変数の昇順を確認しようとしているときに、次のコード スニペットで説明できる 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

再び同様の罠に陥らないようにするために、何か良い説明はありますか?

4

2 に答える 2