質問

私への役立つ答えの後 最後の質問 さまざまなオプションがあるクラスにテンプレートメソッドパターンを使用し始めました。それらをすべて実装しなかったため、そのクラスのオブジェクトに対する私の現在の宣言は、次のようになりました。

pc < prg, tc, 9, 0, 4, 4, test, true, true, true, true, false, true, true, 10, 0, -1, 3, 3 > mp;

長いテンプレートパラメーターリストをどのように扱いますか? true/falseと数字の代わりにenums/定義を使用する必要がありますか?一般的に使用される代替品はありますか?

役に立ちましたか?

解決

はい、true/falseの代わりにenums(定義しない)を使用します。そうすれば、パラメーターを順番に取得した場合、コンパイラは文句を言います。また、読者にとってはるかに明確です。

一般的に長いパラメーターリストを扱うことに関しては、typedefの後ろにそれらを隠したり、テンプレートパラメーターの一部を修正したり、他のパラメーターを変えることができるジェネレーターを隠します。

他のヒント

それほど長いテンプレートパラメーターリストがある場合は、私のデザインを再考したいです。多くのパラメーターは、多くの場合、デザインが悪いことを示しています。

私はC ++をしません、そしてこれはテンプレートにうまく適用されないかもしれませんが、私が長いパラメーターリストを持つ通常の方法でやろうとするのは、関連するパラメーターを見つけて、それらを賢明にグループ化し、グループ化を反映したパラメーターオブジェクトを導入しようとすることです。より複雑なパラメーターの短いリストがあるように。

私は、バリアントタイプのコレクションである単一の引数、たとえばSTD :: Vectorを評価します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top