C のテンプレート制約
C では、現在、C# で見られるように、テンプレート パラメーターに制約を適用するための組み込みサポートはありません。一般的な制約。ただし、同様の効果を達成するための回避策があります。
C 11 Static Assertion
C 11 は、コンパイル時に実行するための static_assert マクロと std::is_base_of テンプレートを提供します。小切手。提供されている例では、これらを次のように使用できます。
<code class="cpp">#include <type_traits> template<typename T> class Foo { Foo() { // Compile-time check static_assert(std::is_base_of<IFoo, T>::value, "type parameter of this class must derive from IFoo"); // ... } };</code>
これにより、T パラメータはコンパイル時に IFoo から派生する必要があり、Foo
C 0x テンプレート制約
C 0x (C 17 とも呼ばれます) では、テンプレート制約の概念のネイティブ サポートが導入されていることに注意してください。 template
以上がC でテンプレート パラメーターに制約を適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。