これはC ++の開発で提案されたものであり、Stroustrupが153ページ以降の「C ++の設計と進化」で説明しています。提案は整形式で、Adaでの以前の経験に基づいています。採用されませんでした。
最大の理由は、多数のパラメーターを持つ関数を推奨したくないということです。言語の追加機能にはそれぞれ費用がかかり、悪いプログラムを書きやすくする機能を追加する必要はありませんでした。
また、特に通常のヘッダーとコードファイルの規則において、標準的なパラメーター名が何であるかという問題も提起されました。一部の組織では、.hファイルに長くてわかりやすいパラメーター名があり、.cppファイルに入力するのが短くて簡単です(必要に応じてファイルのサフィックスを置き換えます)。これらが同じであることを要求すると、コンパイルに追加コストがかかり、ソースファイル間で名前が混同されると、微妙なバグが発生する可能性があります。
関数呼び出しではなくオブジェクトを使用して処理することもできます。多数のパラメーターを指定したGetWindow呼び出しの代わりに、多数のプライベート変数を使用してWindowクラスを作成し、必要に応じてセッターを追加します。セッターを連鎖させることで、のようなものを書くことができmy_window.SetColor(green).SetBorder(true).SetBorderSize(3);
ます。また、実際に作業を行う関数を呼び出す、異なるデフォルトを持つ異なる関数を持つこともできます。
のドキュメント化の効果が心配なだけであればcontentFetcher.DownloadNote(note, manual : true);
、いつでものようなものを書くことができるcontentFetcher.DownloadNote(note, /* manual */ true);
ので、ドキュメント化ではあまり役に立ちません。