IT用語集 › プログラミング › 構造化束縛

構造化束縛

プログラミング Svenska → 更新: 2026-10-22

C++17 の構文 auto [a, b] = expr; で、複合値を複数の名前へ一度に展開する機能。

対象は3種類で、通常の配列、public メンバだけを持つ構造体、そしてタプルプロトコルを実装した型である。std::pair や std::tuple が使えるのは最後の仕組みによる。日常的な利点は map の反復で、it->first や it->second の代わりに for (const auto& [key, value] : m) と書ける。読みやすいうえ、first と second の取り違えという定番のミスも消える。複数の値を返す関数に出力引数が要らなくなったのも大きい。ただし注意点もある。束縛された名前は変数ではなく、隠れたオブジェクトへの束縛である。また不要な要素を飛ばすことはできず、_ も他と同じ普通の名前として束縛される。

← 用語集に戻る