我有一个模板类,它以字符串文字作为参数。代码工作正常 - 但我有一个问题,是否可以使用编译时检查来跳过生成if (S)
或else
块体?(类似于 __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;
}
};