2016-09-13 5 views
6

क्या संकलन से compilers से बचाता है एक static_assert के लिए-init-बयान बयान के लिए कीमें रखा?static_assert के लिए-init-कथन के लिए की

उदाहरण के लिए:

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

आपको इसकी आवश्यकता क्यों है? – Slava

+1

@ स्लावा 'भाषा-वकील' टैग विकी लेख के रूप में कहता है: * "भले ही आपके प्रश्न का कोई व्यावहारिक उपयोग न हो" *। –

+0

@Slava अभी तक कोई आवश्यकता नहीं है। कंपाइलर मांग उन्मुख या मानक उन्मुख हैं? – rahnema1

उत्तर

10

Grammatically। एक for पाश है:

for (init-statement; conditionopt ; expressionopt) statement 

जहां एक init-बयान या तो एक अभिव्यक्ति एक ; या एक सरल-घोषणा द्वारा पीछा किया है। static_assert-declaration उन चीजों में से कोई नहीं है, इसलिए यह वहां नहीं जा सकता है।

+0

है लेकिन static_assert एक घोषणा है – rahnema1

+3

@ rahnema1 लेकिन यह एक * सरल घोषणा नहीं है *। – Barry

+4

@ rahnema1 एक 'static_assert' एक * ब्लॉक-घोषणा * एक * सरल घोषणा * नहीं है। – NathanOliver

संबंधित मुद्दे