- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 
                        struct Base { };
struct Class : Base
{
    int mem{ 0 };  // init non-static data member
    Class(int i)
    : Base{}   // init base class
    , mem{i}   // init member
    {
      int j{i};   // init local var
      int k = int{0};  // init temporary
      f( { 1 } );  // init function arg
      int* p = new int{1};  // new init
      // int k(int());  // most vexing parse, declares function
      int k{ int{} };   // ok, declares variable
      int i[4]{ 1,2,3,4 };   // init array
    }
    Class f(int i)
    {
      return { i };   // init return value
    }
};
Class c{1};   // init global var
                                 
        
> return { i };
Чаем подавился.
PS Именно то что мне понравилось - работает.
https://ideone.com/xUi3Bl
Остальное бред какой-то. Вот не знаю плюсовать или нет.
Уже работает. Причем без ворнингов.
Та да. Это они серъезно. Пиздец эзотерика.
http://stackoverflow.com/questions/13267277/where-can-we-use-list-initialization
Но тут ебанулись пуще прежнего.
С++ удивляет меня каждый месяц. Сколько нового узнаю.
P.s. кто же победит в чемпионате по ебанутости синтаксиса и семантики? Кресты15 или перл7?
Конечно, иногда они должны быть частями цифр и переменных, но крестоблядской контекстно-зависимой грамматике не привыкать.
W и M,
R и Я, V и Л (тут надо чтоб Unicode поддерживался в базе, конечно же, ну и шрифт желательно "правильный" выбрать),
о_О и О_о (Возможны вариации),
p и d, b и d, q и р,
(: и :) (cамый не очевидный из представленных вариантов).
теперь будут ныть, что int func {}; молча объявит глобальную переменную, а не ошибку в паскале-функции с опущенными параметрами (спасет только то, что Тарас доберется до c++11 лет через 10)
http://liveworkspace.org/code/1F1UaY$3
Если на то пошло, на любом языке можно писать в той или иной степени нечитаемую кашу. Вопрос в том, насколько сложны правила синтаксического анализа. C++ лично для меня, как для человека далекого от темы, выглядит гораздо сложнее большинства других языков именно из-за всех этих частных случаев синтаксиса.
TRamStorage
Сразу понятно, что где что.
Было: int i = 0;
Все это для слабаков настоящий кресто-джедай будет теперь любую ручную инциализацию заменять Lisp программой которая возвращает нужное значение.
Cтало: int j { ( - (+ (* 0 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6)) 57) };
Профит же.
>заменять Lisp программой
Видя такой пиздец становится приятно вспоминать о том что есть именно lisp и js, с минималистичным универсальным синтаксисом, которые тем не менее умеют всё что и кресты, а то и больше.
js в новых стандартах хотят усложнить и испортить.
> int j { ( - (+ (* 0 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6)) 57) };
Та это ж легко читается, а когда скобки разные и одни и те же скобки обозначают разное в зависимости от контекста- вот труЪ С++.