0

重複の可能性:
C++ テンプレート/マクロを記述して、2 つの関数が同じ署名を持っているかどうかを確認することは可能ですか?

コンパイル時に 2 つのメンバー関数が同じシグネチャ (戻り値の型と引数リスト) を持っているかどうかを確認するために C++ テンプレート/マクロを作成することは可能ですか?

私はこのようなものが欲しい:

CHECK_SIGNATURES(Foo, foo, Bar, bar);

Foo::foo 関数と Bar::bar 関数の戻り値の型またはパラメーター リストが異なる場合、コンパイルは失敗します。

4

1 に答える 1

0

次のことを試してください。

template <class T>
bool same(T, T) { return true; }

template <class T, class U>
bool same(T, U) { return false; }

または、重複した質問std::is_sameへの回答で like を使用することもできます。

于 2013-01-27T14:35:59.590 に答える