Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Чем отличается значение переменной после знака = от значения в {}?

Макс Максбетов Ученик (74), на голосовании 1 неделю назад
Чем отличается int x = 0, от int x {0}?
Голосование за лучший ответ
Back End Профи (544) 1 месяц назад
ничем. просто в новых стандартах ввели такую инициализацию
Макс МаксбетовУченик (74) 1 месяц назад
Спасибо
Любопытный исследователь Мастер (1192) 1 месяц назад
Единственное существенное различие, которое я знаю, заключается в обработке explicit конструкторов:
 struct foo   

{

explicit foo(int);

};



foo f0 {42}; // OK

foo f1 = {42}; // не допускается
Это похоже на "традиционную" инициализацию:
 foo f0 (42);  // OK  

foo f1 = 42; // не допускается

Кроме того, в C ++ 11 есть дефект (см. CWG 1270), который допускает исключение фигурных скобок только для формы T a = {something}
 struct aggr  

{

int arr[5];

};



aggr a0 = {1,2,3,4,5}; // OK

aggr a1 {1,2,3,4,5}; // не допускается
Похожие вопросы