Новости подготовки стандарта С++ 2020

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

К сожалению тенденция превратить С++ в яву продолжает усиливаться в Комитете :(

Кому интересно, читайте предложение (оно ещё январское, но я как-то пропустил) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1609r3.html

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Уж лучше бы ввели "сравнение Дарта Вейдера" (оператор <=> ), которое, кстати уже одобрено и скорее всего реально войдёт в язык.

bwn
Offline
Зарегистрирован: 25.08.2014

Петрович, вот считаете, нам вируса мало???(((((
Эт ведь надо, таким злобным быть.?)))))
Мня тут, и так расстроили, сказали, вумные сограждане всю крупу вымели, а значит, придется второй раз на комбикормовый ехать, собаке за чипсами.(((

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Странно, что тебя смущает дрейф в сторону Явы, но не смущает смещение в сторону Пёрла, откуда и выползла эта уродливая трихотомия (оператор <=>). Такая штука была уместна в Фортране, но здесь она явно чужеродна. Нет?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Тоже считаю, что извращений должно быть только два: хоккей на траве и балет на льду, оператор <=> тут явно лишний :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А чё, зато функция сравнения для qsort вырождается в

int cmp(const void * a, const void * b) {
    return * (SomeType *) a <=> * (SomeType *) b;
}

а сейчас там два ифа писать надо :-)

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП пишет:

А чё, зато функция сравнения для qsort вырождается в

int cmp(const void * a, const void * b) {
    return * (SomeType *) a <=> * (SomeType *) b;
}

а сейчас там два ифа писать надо :-)

Зато пока разберёшься, что значит сия херобора - коньяку не хватит в лабазах :)

Azathtot
Offline
Зарегистрирован: 17.03.2020

DIYMan пишет:

Зато пока разберёшься, что значит сия херобора - коньяку не хватит в лабазах :)

Так С/С++ всегда был write-only language, собственно как и перловка. Так что ничего удивительного :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А вот мартовское предложение по расширению языка в сторону рефлексии - http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2020/n4856.pdf

:-(

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Женя! Мне одному кажется, что таким образом С++ движется в торону языка "без концепции". Так как я уже не могу обозначить базовые свойства языка. Есть элементы жесткой типизации, но есть и auto, есть объекты, но есть и их адреса и адресная арифметика. Есть защита кода, но есть (будет) рефлексия.  Какая-то каша получается. И полная безыдейность. -Где скрепы? - спрашиваю я без сарказма!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ой не говори! Не хочу сказать, что сами по себе эти фичи плохи, но есть же там яваскрипт и ещё 100500 языков, где всё это добро естественно, чего этот-то язык туда тянуть. Собственно многие уже давно почувствовали неладное, ещё когда RTTI замутили. Уже тогда было понятно, что добром это не кончится.

auto то ещё ладно, это всё-таки фишка времени компиляции и, коль скоро уж есть шаблоны, должно быть и что-то типа auto. Посмотри, как изящно с ним решается задача сделать шаблон функции, возвращающей значение того же типа, что и параметр шаблона. Коротко, понятно и в целом красиво. Главное - всё на уровне компиляции. Но они ж суки рантаймовские штуки туда тащат!

В ноябре говорил с парнем из комитета неформально, за коньяком, так тот сказал, что там вообще сейчас фашизм. Идёт война за топовые суперкомпьютеры (на чём программировать для миллиона ядер?) и спонсоры комитета давят, чтобы язык захватил этот рынок. Отсюда и фичи такие. Мужик сказал, "ты ещё бумаги комитета по фортрану почитай, вроде язык для мужчин, а сейчас там такие сопли жуются ... тоже туда же - рефлеския, jit-компиляция". Дожили, блин, до jit компиляции в фортране, дорефлексировались достоевские хреновы :-(

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Прочитал про Фортран. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, что, главная новость, что стандарт вышел ещё в декабре. До меня, к сожалению, только сейчас добрался. Выложить полный текст не могу. В прошлый раз у меня была версия, скачанная у пиратов, и я никому ничего не был должен. Сейчас, пока, такой нет. Если появится - выложу.

Текст документа можно официально купить, правда цена конская. Можно читать онлайн (за скачивание денег хотят) у наших друзей - китайцев. В конце концов, можно бесплатно читать один из последних черновиков, который очень мало отличается от релиза. Последнее удобно тем, что работают гиперссылки. Правда, сайт тормознутый. Можно также купить книгу с большим количеством примеров. Тоже недёшево, но дешевле самого документа.

Основные новшества: концепты, модули, сопрограммы, расширенная работа со временем и, конечно же, "сравнение Дарта Вейдера", куда ж без него (в этой теме выше обсуждалось). Также сильно расширена концепция constexpr и почти исчезло (не совсем пока) понятия "volatile" - для параллелизма там появляются более современные механизмы.

Где все эти прелести можно попробовать? Пока в 10-ой версии GCC и последних релизах VS 2019. Вот здесь есть таблица что, где и в какой версии поддерживается.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

ЕвгенийП пишет:

Ну, что, главная новость, что стандарт вышел , правда цена конская.

Пипец программированию. Только питон. А за стандарт си денег хотят, с-ки.

Хотя, в применении к ардуинке, это всё тлен и суета. Она это не лубит :)

Logik
Offline
Зарегистрирован: 05.08.2014

пересказ стандарта в вольной форме https://www.youtube.com/watch?v=5s4CFEMARtU Хорошо слушать перед сном.