This proposal essentialy
entails standardizing the null coalescing conditional operator as implemented in gcc and clang, with the
syntax a ? : b
to be equivalent to
auto&& temp = a;
temp ? temp : b;
Что-то всех начинает колбасить от бурной эволюции языков (C# 6, C++17) . Раньше была генеральная линия партии на то, что всё, что можно сделать в библиотеке, делается в библиотеке. Что мешает сделать так?
template<typename T> auto ifnull(const T& a, const T& b) { return a ? a : b; }
F>This proposal essentialy
F>entails standardizing the null coalescing conditional operator as implemented in gcc and clang, with the
F>syntax a ? : b
F>to be equivalent to
F>auto&& temp = a;
F>temp ? temp : b;
F>Что-то всех начинает колбасить от бурной эволюции языков (C# 6, C++17) . Раньше была генеральная линия партии на то, что всё, что можно сделать в библиотеке, делается в библиотеке.
Ты упустил ключевое (я выделил). Речь идет просто о стандартизации уже имеющегося расширения.
F>This proposal essentialy
F>entails standardizing the null coalescing conditional operator as implemented in gcc and clang, with the
F>syntax a ? : b
F>to be equivalent to
F>auto&& temp = a;
F>temp ? temp : b;
F>Что-то всех начинает колбасить от бурной эволюции языков (C# 6, C++17) . Раньше была генеральная линия партии на то, что всё, что можно сделать в библиотеке, делается в библиотеке. Что мешает сделать так?
F>
template<typename T> auto ifnull(const T& a, const T& b) { return a ? a : b; }
Надо пойти дальше, реализовать не только or-else, но и and-then так же, как в других языках (начиная со смолтока и чистого лямбда-исчисления)
(a &&: b) <--> auto&& t = a; return t ? b : t;
(a ||: b) <--> auto&& t = a; return t ? t : b;
F>Что-то всех начинает колбасить от бурной эволюции языков (C# 6, C++17) . Раньше была генеральная линия партии на то, что всё, что можно сделать в библиотеке, делается в библиотеке. Что мешает сделать так?
F>
template<typename T> auto ifnull(const T& a, const T& b) { return a ? a : b; }
Здравствуйте, Кодт, Вы писали:
К>Надо пойти дальше, реализовать не только or-else, но и and-then так же, как в других языках (начиная со смолтока и чистого лямбда-исчисления)
А я тут где-то предлагал добавить синтаксис десятичной бесконечной периодической дроби:
double x = 0.3(3);
Еще неплохо бы смотрелись unless и until, perl-овый обратный синтаксис записи условия тоже ничего:
foo = 1 if (bar);
От фигурных скобок тоже как бы пора отказаться и использовать отступы, как в Python или Haskell. Как и от обязательной точки с запятой в конце операции — надоело уже, что компилятор пишет предупреждение "пропущена точка с запятой". Ведь знает же, гад, что она там должна быть — чего он тогда дуркует?
А как такая идея: сделать тип auto типом по умолчанию? В старые добрые времена, ЕМНИП, если при объявлении тип (переменной, результата функции) не указывался, то подразумевалось, что это int. Пусть теперь это будет auto, не?
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Здравствуйте, flаt, Вы писали:
F>Что-то всех начинает колбасить от бурной эволюции языков (C# 6, C++17) . Раньше была генеральная линия партии на то, что всё, что можно сделать в библиотеке, делается в библиотеке. Что мешает сделать так?
А что ты хотел? Чтобы они там, в своей WG21 сказали "все, мы достигли абсолюта" — и самораспустились бы? И куда им тогда идти и чем снискать хлеб свой насущный?
Есть у революции начало —
Нет у революции конца!
Как меня все это [задолбало],
Как давно пора попить винца!
Vanga said: это кончится так же, как с POSIX.
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Здравствуйте, slava_phirsov, Вы писали:
_>Здравствуйте, flаt, Вы писали:
F>>Что-то всех начинает колбасить от бурной эволюции языков (C# 6, C++17) . Раньше была генеральная линия партии на то, что всё, что можно сделать в библиотеке, делается в библиотеке. Что мешает сделать так?
_>А что ты хотел? Чтобы они там, в своей WG21 сказали "все, мы достигли абсолюта" — и самораспустились бы?
ты так говоришь как будто на самом деле они его уже достигли.
Здравствуйте, Abyx, Вы писали:
_>>А что ты хотел? Чтобы они там, в своей WG21 сказали "все, мы достигли абсолюта" — и самораспустились бы?
A>ты так говоришь как будто на самом деле они его уже достигли.
Иногда нужно просто вовремя остановиться. Та же проблема была у группы по Ada (тут я по памяти процитирую мнение Р.Гласса, которое он высказал ЕМНИП в "Креативное программирование 2.0": "Изящную стрелу, которая должна была поразить только одну цель, они превратили в массу, заливающую все вокруг" — я сам на Ada не писал, так что полагаюсь на мнение человека, который с ним знаком, "мопед не мой ит.д.")
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Здравствуйте, slava_phirsov, Вы писали:
_>Здравствуйте, Abyx, Вы писали:
_>>>А что ты хотел? Чтобы они там, в своей WG21 сказали "все, мы достигли абсолюта" — и самораспустились бы?
A>>ты так говоришь как будто на самом деле они его уже достигли.
_>Иногда нужно просто вовремя остановиться. Та же проблема была у группы по Ada (тут я по памяти процитирую мнение Р.Гласса, которое он высказал ЕМНИП в "Креативное программирование 2.0": "Изящную стрелу, которая должна была поразить только одну цель, они превратили в массу, заливающую все вокруг" — я сам на Ada не писал, так что полагаюсь на мнение человека, который с ним знаком, "мопед не мой ит.д.")
я на Ada тоже не писал, и я как-то не понимаю при чем она тут.
что касается С++, то я на нем писал.
и в С++ не хватает очень многих вещей.
в частности возможности писать
auto&& x = f() ?: g() ?: h();
вместо
auto&& x = ([&]{
if (auto&& temp = f())
return temp;
if (auto&& temp = g())
return temp;
return h();
})();
_>А как такая идея: сделать тип auto типом по умолчанию? В старые добрые времена, ЕМНИП, если при объявлении тип (переменной, результата функции) не указывался, то подразумевалось, что это int. Пусть теперь это будет auto, не?
Это абсолютно разумный следующий шаг.
auto в его новом значении (С++11) бессмысленен.
Re[4]: [flame] Ну а чо, раз пошла такая пьянка - режь последний огурец!
_>>А как такая идея: сделать тип auto типом по умолчанию? В старые добрые времена, ЕМНИП, если при объявлении тип (переменной, результата функции) не указывался, то подразумевалось, что это int. Пусть теперь это будет auto, не?
_>Это абсолютно разумный следующий шаг. _>auto в его новом значении (С++11) бессмысленен.
ИМХО, понизит читабельность. Станет непонятно где объявляется новый тип, а где реюзается старый.
Здравствуйте, flаt, Вы писали:
F>Во времена 2003 стандарта говорили, что С++ учат лет 5. Сколько учить С++17?
лолшто? С++ учат 5 лет? кто? люди с проблемами в развитии чтоли?
мне помнится хватило всего пары месяцев чтобы начать писать нормальный код, при этом я тогда учил плюсы как хобби.
In Zen We Trust
Re[5]: [flame] Ну а чо, раз пошла такая пьянка - режь последний огурец!
Здравствуйте, saf_e, Вы писали:
_>ИМХО, понизит читабельность. Станет непонятно где объявляется новый тип, а где реюзается старый.
Ты, конечно, имел в виду не "тип", а "переменная"?
В perl для этого необходимо явно указывать my $variable, а вот в Python — действительно, объявление переменной от присвоения существующей переменной нового значения ничем не отличается (скажу по секрету, мир от этого, как ни странно, не рухнул ))) )
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[6]: [flame] Ну а чо, раз пошла такая пьянка - режь последний огурец!
Здравствуйте, slava_phirsov, Вы писали:
_>В perl для этого необходимо явно указывать my $variable,
«Необходимо» только если включен соответствующий режим (use strict 'vars'). Иначе как в Си, где тип переменной был не обязателен.
Re[7]: [flame] Ну а чо, раз пошла такая пьянка - режь последний огурец!
Здравствуйте, flаt, Вы писали:
_>>В perl для этого необходимо явно указывать my $variable, F>«Необходимо» только если включен соответствующий режим (use strict 'vars'). Иначе как в Си, где тип переменной был не обязателен.
Я уже на автомате в начале каждого модуля пишу
use warnings;
use strict;
, как рекомендует Alpaca book, и не парюсь
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)