0
私はテンプレートクラス(A)を持っています。テンプレートの引数に特定の関数を持たせるにはどうすればよいですか?テンプレート引数に特定の演算子を強制する
template <class T>
class A
{
} ;
Tは特定の機能を有する必要があります。あなたのテンプレートコードが関数を使用している場合T
がそれを持っていない場合、コンパイルはすでに失敗します
おかげ
私はテンプレートクラス(A)を持っています。テンプレートの引数に特定の関数を持たせるにはどうすればよいですか?テンプレート引数に特定の演算子を強制する
template <class T>
class A
{
} ;
Tは特定の機能を有する必要があります。あなたのテンプレートコードが関数を使用している場合T
がそれを持っていない場合、コンパイルはすでに失敗します
おかげ
。
しかし、A
のユーザーに明確なエラーメッセージを提供することが目標の場合は、checks on T
having that memberに基づく静的なアサートを使用できます。ただし、watch out for inherited functionsにする必要があります。
C++はダックタイプです。だから、それがその関数を持っていると仮定し、そうでなければ、コンパイラは 'A'に関数' blahblah'が存在しないことを伝えます。 –