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
、それは不可能であると結論付けなければなりません。
「文字列リテラルは、二重引用符 (") で囲まれたソース文字セットの 0 個以上の文字で構成されます。文字列リテラルは、まとめて null で終わる文字列を形成する一連の文字を表します。" - C++ 文字列リテラル
Boost::StaticAssert
これにより、探しているものが得られる可能性があるため、使用を検討することをお勧めします。