2016-09-13 10 views
6
コンパイルからコンパイラを防ぐ何

static_assertため-INIT文文のに配置されましたか?例えばstatic_assertため-INIT文for文の

for(static_assert(true, ""); false;); // error 
+1

なぜそれが必要ですか? – Slava

+1

@Slava 'Language-Lawyer'タグwikiの記事によれば、「あなたの質問はそうでなければ実用的ではないかもしれませんが」。 –

+0

@Slavaはまだ必要ありません。コンパイラは要求指向か標準指向ですか? – rahnema1

答えて

10

Grammaticallyforループがある:

for (init-statement; conditionopt ; expressionopt) statement 

INIT文;または単純宣言続いのいずれかです。 static_assert-宣言はそのようなものではないので、そこに行くことはできません。

+0

ですが、static_assertは宣言です – rahnema1

+3

@ rahnema1しかし、それは*単純宣言ではありません。 – Barry

+4

@ rahnema1 'static_assert'は*ブロック宣言です*単純宣言*ではありません。 – NathanOliver