有没有办法组合 static_assert 将输出的内容?我的意思是:
template<class T>
struct X
{
static_assert(std::is_signed<T>::value, "Type " + T + " must be signed.");//this doesn't work
};
有没有办法组合 static_assert 将输出的内容?我的意思是:
template<class T>
struct X
{
static_assert(std::is_signed<T>::value, "Type " + T + " must be signed.");//this doesn't work
};
在此不编译的基础上
int main()
{
const char c[2] = "1";
static_assert(1==1, c)
}
也不是这个
int main()
{
const char* c = "1";
static_assert(1==1, c)
}
两者都有错误,error: expected a string literal
那么我将不得不得出结论,这是不可能的。
“字符串文字由源字符集中的零个或多个字符组成,并用双引号 (") 括起来。字符串文字表示一系列字符,这些字符组合在一起形成一个以空字符结尾的字符串。” - C++ 字符串文字
您可能需要考虑使用Boost::StaticAssert
,因为这可能会为您提供所需的内容。