文字列リテラルをパラメーターとして受け取るテンプレート クラスがあります。コードは問題なく動作しますが、コンパイル時のチェックを使用して生成をスキップしif (S)
たり、else
本体をブロックしたりできるかどうか、1 つ質問があります。(__if_exists や #if、特性などのようなもの)。A<nullptr>
別の関数を定義する特殊化を行うことができることを理解していprint()
ますが、これを行う他の (より単純な) 方法があるかどうかも知りたいです。ありがとう!
template<char const* S = nullptr>
class A
{
public:
void print()
{
if (S)
cout << S << endl;
else
cout << "nullptr" << endl;
}
};