- 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
3.14159265 28.01.2013 21:31 # +7
> return { i };
Чаем подавился.
byss 28.01.2013 21:42 # +3
3.14159265 28.01.2013 21:49 # +2
PS Именно то что мне понравилось - работает.
https://ideone.com/xUi3Bl
Остальное бред какой-то. Вот не знаю плюсовать или нет.
byss 28.01.2013 22:11 # 0
3.14159265 28.01.2013 22:15 # +5
Уже работает. Причем без ворнингов.
byss 28.01.2013 22:41 # +7
3.14159265 28.01.2013 21:56 # +5
Та да. Это они серъезно. Пиздец эзотерика.
http://stackoverflow.com/questions/13267277/where-can-we-use-list-initialization
bormand 28.01.2013 22:16 # +7
3.14159265 28.01.2013 22:20 # +7
Но тут ебанулись пуще прежнего.
С++ удивляет меня каждый месяц. Сколько нового узнаю.
bormand 28.01.2013 22:31 # +9
P.s. кто же победит в чемпионате по ебанутости синтаксиса и семантики? Кресты15 или перл7?
roman-kashitsyn 29.01.2013 10:00 # +3
absolut 29.01.2013 10:47 # 0
roman-kashitsyn 29.01.2013 10:56 # +5
TarasB 29.01.2013 11:00 # +5
Конечно, иногда они должны быть частями цифр и переменных, но крестоблядской контекстно-зависимой грамматике не привыкать.
absolut 29.01.2013 12:07 # +4
W и M,
R и Я, V и Л (тут надо чтоб Unicode поддерживался в базе, конечно же, ну и шрифт желательно "правильный" выбрать),
о_О и О_о (Возможны вариации),
p и d, b и d, q и р,
(: и :) (cамый не очевидный из представленных вариантов).
govnomonad 29.01.2013 12:51 # +9
Yuuri 30.01.2013 15:13 # +8
bormand 29.01.2013 07:36 # +2
defecate-plusplus 29.01.2013 07:43 # +7
теперь будут ныть, что int func {}; молча объявит глобальную переменную, а не ошибку в паскале-функции с опущенными параметрами (спасет только то, что Тарас доберется до c++11 лет через 10)
nemyx 08.07.2020 09:40 # 0
guest8 08.07.2020 10:17 # −999
nemyx 08.07.2020 10:23 # 0
LispGovno 28.01.2013 23:41 # +5
http://liveworkspace.org/code/1F1UaY$3
dwarf_with_beer 29.01.2013 12:24 # +4
scriptin 29.01.2013 15:30 # +3
Если на то пошло, на любом языке можно писать в той или иной степени нечитаемую кашу. Вопрос в том, насколько сложны правила синтаксического анализа. C++ лично для меня, как для человека далекого от темы, выглядит гораздо сложнее большинства других языков именно из-за всех этих частных случаев синтаксиса.
roman-kashitsyn 29.01.2013 15:34 # +2
TarasB 29.01.2013 15:35 # +2
TRamStorage
Сразу понятно, что где что.
roman-kashitsyn 29.01.2013 16:14 # +4
3.14159265 29.01.2013 16:17 # +5
LispGovno 29.01.2013 16:45 # −1
LispGovno 29.01.2013 16:45 # +3
3.14159265 29.01.2013 17:44 # +2
LispGovno 29.01.2013 16:47 # 0
dwarf_with_beer 29.01.2013 17:20 # −1
scriptin 29.01.2013 23:20 # +5
dwarf_with_beer 30.01.2013 12:10 # +5
HaskellGovno 30.01.2013 12:39 # +2
guest6 24.10.2023 15:29 # 0
igumnovf 29.01.2013 17:16 # +4
Было: int i = 0;
Все это для слабаков настоящий кресто-джедай будет теперь любую ручную инциализацию заменять Lisp программой которая возвращает нужное значение.
Cтало: int j { ( - (+ (* 0 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6)) 57) };
Профит же.
dwarf_with_beer 29.01.2013 17:37 # 0
3.14159265 29.01.2013 19:13 # +1
>заменять Lisp программой
Видя такой пиздец становится приятно вспоминать о том что есть именно lisp и js, с минималистичным универсальным синтаксисом, которые тем не менее умеют всё что и кресты, а то и больше.
js в новых стандартах хотят усложнить и испортить.
> int j { ( - (+ (* 0 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6)) 57) };
Та это ж легко читается, а когда скобки разные и одни и те же скобки обозначают разное в зависимости от контекста- вот труЪ С++.