2014-08-15 3 views
1
const int number{42}; 

Действительно ли это синтаксис? Я могу найти только примеры, когда инициализаторы курчавых скобок используются для объектов или нетривиальных типов.Унифицированный синтаксис инициализации для базовых типов?

+1

Зачем искать примеры, когда вы можете просто найти его в стандарте языка? Да, это разрешено. Вот что означает «форма» в «униформе». –

+2

«Единый синтаксис инициализации», ну, * равномерный *. Так что да, это действительно так. –

+0

Ну, я уже использовал его, и он работает так, как ожидалось, но потом кто-то сказал мне, что это недопустимый синтаксис. Поэтому я пошел искать примеры. И вот мы здесь. – hoosierEE

ответ

7

Простой ответ на ваш вопрос: ДА разрешено и является допустимым синтаксисом.

Вы можете проверить Uniform initialization syntax and semantics по Страуструпом

также добавить, что в соответствии с C++ 98 8,5/13:

Если T это скалярный тип, то заявление о форме

T x = { a }; 

эквивалентно

T x = a; 
+1

Хорошо, а как насчет 'T x {a};' как в вопросе OP? – fredoverflow

+1

@FredOverflow: - Да, это тоже разрешено! –

+1

И имеет ли он такую ​​же семантику? – fredoverflow

Смежные вопросы