、私は時々、このようなユーティリティクラスで終わる:C++:C++では、引数の引数変換クラスの良い名前
struct time_ref
{
time_ref(FILETIME & ft) : ftval(&ft), ttval(0) {}
time_ref(time_t & tt) : ttval(&tt), ftval(0) {}
FILETIME * ftval;
time_t * ttval;
}
彼らは、例えばimplcitの変換に依存しています
void Foo(int x, int y, time_ref t)
根拠:Foo
がオーバーロードと他のパラメータを持っている場合、プロトタイプは乗算、例えば過負荷のnumnerを低減しますtのX * 2過負荷に対する3つの過負荷は、6つのプロトタイプであり、上記のコンバータでは3つです(2つのコンバータを使用する場合でも1つです)。
常に:
:- が
THYEに異なるこれらの変換を可能にするためにのみ機能のパラメータとして使用されるべき二つまたはmroeタイプための暗黙のコンストラクタを有します
- 数値タイプがサポートされているタイプ
- は、値を格納することも、参照を格納することもできます
- どのようなタイプのフィールドが検出されるかは、上記の場合はnullではありません。別の典型的な実装では)
質問enumフィールドおよびデータ値の和集合である:
1.このパターンの受け入れ/共通の名前はありますか?私は通常、「引数変換器」または「引数アダプタ」と呼びますが、一般的ではないと思われます。
2.正式化するための推奨事項それらがパラメータとしてのみ使用されるようにする方法はありますか?知っておくべき他の何か?
'FILETIME_or_time_t'? – sbi
私は各引数を扱うロジックがいくぶん別々であると思いますので、実際には(arg 1型のカウント)*(arg 2型のカウント)*(arg 3型のカウント)別の実装は必要ありませんか?その場合、おそらくテンプレートを使って(arg 1型のカウント)+(arg 2型のカウント)+(arg 3型のカウント)のオーバーロードに戻ることができます。 –
テンプレートを使用するだけではどうですか? –