文字列をテンプレート引数として渡す
C では、クラス テンプレートを定義するときに、型以外のパラメーターも指定できます。一般的な使用例には、文字列リテラルをパラメーターとして渡すことが含まれます。これを実現する方法は次のとおりです。
文字列リテラルを型以外のテンプレート引数として直接渡すことはできませんが、const char* パラメータを利用し、静的リンケージで const char[] 変数を渡すことができます。 .
#include <iostream> template<const char *str> struct Cts { void p() { std::cout << str; } }; static const char testStr[] = "Hello world!"; int main() { Cts<testStr> o; o.p(); }
ここで、Cts テンプレートには、const char* 型の非型パラメーター str があります。 const char[] 型の静的変数 testStr を定義し、それを引数として Cts
このアプローチは、文字列リテラルをテンプレート引数として渡す動作を効果的に模倣し、クラス テンプレートを作成できるようにします。特定の文字列値を操作します。
以上がC で文字列リテラルをテンプレート引数として渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。