非型テンプレート引数として文字列リテラルを渡す
問題ステートメント:
できますかmy_class<"string">?
解決策:
などの文字列リテラルを受け入れる非型テンプレート パラメーターを使用してクラス テンプレートを定義します。文字列リテラルを型以外のテンプレート パラメーターとして直接渡すことは可能ですが、 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(); }
説明:
このコードでは、テンプレート パラメーター str は文字列リテラルを指すことができる const char* です。または文字列変数。変数 teststr は、文字列リテラル「Hello world!」を含む静的 const char[] として宣言されます。 teststr をテンプレート引数として渡すことで、クラス テンプレート内の文字列リテラルに効果的にアクセスできます。
以上が文字列リテラルを非型テンプレート引数として渡すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。