条件分岐の中で条件式と初期化式を一緒に書けるようになったのを知った (C++17)


forと同じように書けるので一貫性が生まれるのと、
楽に書けるようになった。

従来

外側にスコープをつけないといけない。

{ // これがだるい
    int x = get_Value();
    if (x > 10) {
        std::cout << "x > 10";
    }
}

しかも付け忘れると、見える範囲が広くなってしまう。

int x = get_Value();
if (x > 10) {
    std::cout << "x > 10";
} // xを使うのはここまでなのに、

// ここからでも使えてしまう。

C++17

とても楽。スコープは狭くなるし、冗長的な書き方をしなくても済む。

if (int x = get_Value(); x > 10) {
    std::cout << "x > 10";
}