static_assertでは、コンパイル時に任意の文字リラテルをエラー文として表示することができますが、定数やコンパイル時定数を指定してもエラーとなってしまいます。コンパイル時定数を指定できればよりメタプログラミングの幅が広がると思うのですが、何故そうできないのでしょうか。
そして、どうにかして文字リラテル以外を指定することができないでしょうか。
Cpp
1#include <iostream> 2 3struct test { 4 static const int value = 5; 5}; 6 7int main() { 8 static constexpr int t = 4; 9 10 static_assert(false, "test"); 11 static_assert(false, t); 12 static_assert(false, test::value); 13 14 return 0; 15}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/22 08:24 編集
2019/06/26 14:00