このブログでは、C++17で利用可能な構造化束縛(Structured Bindings)を使用して効率的なコードを迅速に書く方法をC++Builderで学びます。
C++17では、糖衣構文(syntax sugar)と自動型推論を統合する新機能として「構造化束縛」が導入されました。構造化束縛は、ペア、タプル、構造体や配列などを要素に分解する機能で、これを利用すると関数から複数の値を返した場合、戻り値の受け取りが簡単になります。
構造化束縛の構文は、以下の通りです。
[crayon-6768f5e341a5a834569263/]- 変数 var1, var2 – のリストは、代入される式に含まれる変数の数と正確に一致しなければなりません。
- 次に以下のいずれかが必要
- std::pair
- std::tuple
- 構造体
- 配列
- 型として “auto”,”const auto”, “auto&&”といった自動推論型が使用可能(auto以外の型、例えば、intやdoubleといった具体的な型は使用不可)
角括弧[…]で囲まれた変数の数が一致しない場合、以下のコード例のようにコンパイラはエラーを発生し、構文の間違いを指摘します。
[crayon-6768f5e341a62084319870/]実際のコード例を見てみましょう。
[crayon-6768f5e341a65739594042/]上記のコードのように構造化束縛を使用することで、より効率的で整頓されたコードを記述できます。
「構造化束縛」について詳しく知りたい方は、公式ドキュメントを参考ください。また、このブログで紹介しましたサンプルコードは、こちらからダウンロードできます。
C++Builder 10.4では、最新のC++17の言語仕様をサポートしており、C++17の新機能もすぐに試せます。製品の詳細は、こちらを参照してください。