LINUX.ORG.RU

[ЖЖ] Инициализация в C++0x

 


0

0
Поскольку Толксов для меня уже/пока нет =( а тема имхо интересная, запощу тут. 

Герб Саттер написал пост по итогам июньской встречи комитета и рассказал немного по поводу будущих улучшений инициализации в C++0x.

// Can use initializer list in C++0x
vector<string> v = { "xyzzy", "plugh", "abracadabra" };
map<string,string> phonebook =
  { { "Bjarne Stroustrup (cell)", "+1 (212) 555-1212″ },
    { "Tom Petty (home)", "+1 (858) 555-9734″ },
    { "Amy Winehouse (agent)", "+44 99 74855424″ } };

Если боян - не пинайте =)

З.Ы. Скопировано отсюда: http://alenacpp.blogspot.com/2008/07/c0x.html
anonymous
Интересно, а такое он прожует?

map<string,map<string,string>> phonebook = { { "Bjarne Stroustrup", { "+1 (212) 555-1212″ , "cell"} }, { "Tom Petty", { "+1 (858) 555-9734″ , "home" } }, { "Amy Winehouse", { "+44 99 74855424″ , "agent" } } };

и т.д.

По любому, для C++ это совершенно лишняя финтифлюшка.

anonymous
()
Ответ на: комментарий от anonymous
В каком месте она лишняя? ИМХО очень удобно. Может вам и (например) анонимные функции не нужны? =)
anonymous
()
Ответ на: комментарий от anonymous
штука именно очень нужная. Польза заключается в том, что использование STL контейнеров должно как можно меньше отличаться от C-ных аналогов.
anonymous
()
Ответ на: комментарий от anonymous
Гы, на tcl похоже, ток запятые убрать:

set l { 
       { "Bjarne Stroustrup" { "+1 (212) 555-1212″  "cell"} }
       { "Tom Petty" { "+1 (858) 555-9734″  "home" } }
       { "Amy Winehouse" { "+44 99 74855424″  "agent" } } 
      }

:)
anonymous
()
Ответ на: комментарий от anonymous
На питон больше - там с запятыми =)
anonymous
()
Ответ на: комментарий от anonymous
> Польза заключается в том, что использование STL контейнеров должно как можно меньше отличаться от C-ных аналогов.

если они STL встроили в язык - то да, ради стилевого единообразия. Просто приведенный пример непрактичен.

anonymous
()
Ответ на: комментарий от Eshkin_kot
> 10 лет назад встроили

Значит, теперь не надо писать #include <vector> и т.п. все и так работает?

anonymous
()
Ответ на: комментарий от Eshkin_kot
>> 10 лет назад встроили

В язык ничего не встроили. STL просто входит в стандартную библиотеку C++.

Deleted
()
а можно поянить для нас, Ъ, какими именно изменениями в языке это достигнуто?
dilmah ★★★★★
()
Ответ на: комментарий от jtootf
>а в чём интересность темы ?
>в том, что в C++0x можно будет выкинуть boost.assign ?

Ну вообще-то да, чтобы не тянуть все подряд в свой хелловорд. А на оригинальность и не претендовал =)
anonymous
()
Ответ на: комментарий от jump
> Вопрос: Они впаяли это в язык или в библиотеку?

Видимо он встроят в язык формы конструкторов, понимающие такую инициализацию, а этим уже STL воспользуется.

quarck
()
Похоже на Boost.Assign, вроде.
php-coder ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.