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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.