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

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

Интересно, а такое он прожует?

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 ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от anonymous

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

В каком месте она лишняя? ИМХО очень удобно. Может вам и (например) анонимные функции не нужны? =)

anonymous ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от anonymous

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

штука именно очень нужная. Польза заключается в том, что использование STL контейнеров должно как можно меньше отличаться от C-ных аналогов.

anonymous ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от anonymous

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

> Может вам и (например) анонимные функции не нужны?

А что, наконец-то будут?

anonymous ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от anonymous

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

Гы, на tcl похоже, ток запятые убрать:

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

:)

anonymous ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от anonymous

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

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

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

anonymous ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от Eshkin_kot

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

> 10 лет назад встроили

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

anonymous ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от Eshkin_kot

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

>> 10 лет назад встроили

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

Deleted ()

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

а в чём интересность темы ?
в том, что в C++0x можно будет выкинуть boost.assign ?

ну а вообще, конечно, боян :
http://www.artima.com/cppsource/cpp0x.html

jtootf ★★★★★ ()

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

а можно поянить для нас, Ъ, какими именно изменениями в языке это достигнуто?

dilmah ★★★★★ ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от jtootf

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

>а в чём интересность темы ?
>в том, что в C++0x можно будет выкинуть boost.assign ?

Ну вообще-то да, чтобы не тянуть все подряд в свой хелловорд. А на оригинальность и не претендовал =)

anonymous ()

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

Вопрос: Они впаяли это в язык или в библиотеку?

jump ()
Ответ на: Re: [ЖЖ] Инициализация в C++0x от jump

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

> Вопрос: Они впаяли это в язык или в библиотеку?

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

quarck ()

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

Похоже на Boost.Assign, вроде.

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