Как и многие, я очень рад C++0x. Я пытаюсь изучить и использовать новые функции в новых проектах, чтобы я мог написать лучший, самый простой в обслуживании код.
Излишне говорить, что мне нравится идея новых инициализаторов. Поэтому я смотрю на них, и это имеет смысл для меня:
T x = { 1, 2, 3 }; // like a struct or native array
T x({1, 2, 3}); // copy construct something like an "object literal" in other languages... cool!
return {1, 2, 3}; // similar to above, but returning it, even cooler!
Что для меня не имеет смысла:
T x{1, 2, 3};
Он просто чувствует... странно. Я не уверен, какой синтаксис, который люди хотят использовать, это подражание, это просто не кажется "правильным".
Что за дизайн/мысль за этим синтаксисом?
Единственный пример, где кажется, что он имеет значение, выглядит примерно так:
std::vector<int> the_vec{4};
который будет вызывать конструктор списка инициализаторов, но почему бы просто не написать это:
std::vector<int> the_vec = {4};
И делаете то, с кем все уже комфортно?