LINUX.ORG.RU

Стандарт C++20 утверждён

 


2

10

https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/

Желающие могут попробовать написать новость.

По виду std::format больше похож на fmt, чем на boost::format, что не может не радовать.

Небольшой обзор есть в статье на Хабре: https://m.habr.com/ru/company/yandex/blog/488588/ от Антона Полухина.

★★★★★

Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от eao197

за продвинутые фичи

Кхм, а где в современном C++ продвинутые фичи?

Что же это за работа и задачи такие, где время компиляции в 5 минут начинает влиять на производительность разработчика?

Кхм, да любые. Лично я считаю, что максимально допустимый порог от внесения изменений до наблюдения эффекта составляет около 15 секунд. В идеале не больше 2 секунд. А если требуется 5 минут, чтобы узнать, починено ли что требовалось починить (и еще N часов на полный запуск тестов, чтобы проверить не сломалось ли чего), то настала пора менять инструмент.

kawaii_neko ★★★★
()
Ответ на: комментарий от kawaii_neko

Кхм, а где в современном C++ продвинутые фичи?

Да хотя бы variadic templates, constexpr, автоматический вывод типов параметров шаблонов.

Кхм, да любые.

Еще один звиздун-теоретик. Так уж сложно пример привести, если «да любые»?

Лично я считаю, что максимально допустимый порог от внесения изменений до наблюдения эффекта составляет около 15 секунд.

Каких изменений? Куда?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Да хотя бы variadic templates

Это скорее работа над ошибками. Кстати, а их разве не в C++11 завезли?

constexpr

До сих пор не догнали Lisp родом из шестидесятых.

автоматический вывод типов параметров шаблонов

Честно говоря, метапрограммирование поверх pattern matching крайне фиговая идея вцелом. В основном из-за того, что человеку этим крайне ненаглядно пользоваться в отличие от упомянутого выше defmacro.

Еще один звиздун-теоретик. Так уж сложно пример привести, если «да любые»?

Ну вот пришла мне задача «сделать цветное логгирование, если /dev/stderr — это терминал». Вцелом фигня, делов пару десятков строк, т. е. на полчаса.

Однако если от правки до запуска (мы ведь здесь все сознательные и проверяем, что даже очевидные правки работают как ожидалось?) проходит 5 минут, то каждая моя тупая опечатка (а такие обязательно будут, ведь я практикую C-c/C-v) будет увеличивать время на 5/30=16.7%. А затем еще и тестов перед мерджем дождаться надо, и хорошо если они не флапнут.

Вот так вот и оказывается, что получасовая задача на деле будет замержена в лучшем случае часа через 4, а в худшем и вовсе через пару дней. Но за все ведь платит работодатель, не так ли?

Каких изменений? Куда?

Поменял код -> откомпилировал -> увидел результат изменений. Почему надо разжевывать такие тривиальные вещи?

kawaii_neko ★★★★
()
Последнее исправление: kawaii_neko (всего исправлений: 1)
Ответ на: комментарий от Harald

Мне не комфортно постоянно вылетать из «состояния потока». За 5 минут можно вообще забыть, что там хотел сделать, если текущая идея зафейлится.

kawaii_neko ★★★★
()
Ответ на: комментарий от kawaii_neko

признак неустойчивости индустрии - когда такие эфемерные явления источник добавленной ценности.

qulinxao3 ★★
()
Ответ на: комментарий от kawaii_neko

падажжы, это как надо править код чтобы каждый тык в файле занимал 5 минут на компиляцию? рекомпиляция всего проекта на каждый чих? Или этот самый логгинг в hpp хидере и изменение в нём ломает всех? Ну тогда ССЗБ.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

падажжы, это как надо править код чтобы каждый тык в файле занимал 5 минут на компиляцию?

Линковка же ещё.

gag ★★★★★
()
Ответ на: комментарий от kawaii_neko

Это скорее работа над ошибками.

Какими ошибками? В 90-е, когда над C++98, про variadic-и и не задумывались даже.

Кстати, а их разве не в C++11 завезли?

А что, C++11 уже перестал быть современным C++? Если что, то напомню, что стандарта C++20 еще нет. Работа над черновиком стандарта завершена, но самого стандарта еще нет.

До сих пор не догнали Lisp родом из шестидесятых.

Во-первых, что же вы Lisp-ом то не пользуетесь?

Во-вторых, специально для вас, еще раз, чтобы даже вы поняли:

  • если вам достаточно подмножества «Си с классами», то скорость компиляции такого кода будет отличасться от скорости компиляции Си-шного кода незначительно. Будет у вас 0.5s на компиляцию файла вместо 0.2s, вы этого и не заметите;
  • если вам недостаточно такого подможества, то вы начинаете использовать продвинутые возможности С++. Шаблоны и constexpr в частности. Эти возможности «продвинутые» по сравнению с подмножеством «Си с классами». Если вы хотите сравнить их «продвинутость» с возможностями других языков – то страдайте такой херней, пожалуйста, без меня.

а такие обязательно будут, ведь я практикую C-c/C-v

Это многое объясняет.

Поменял код -> откомпилировал -> увидел результат изменений. Почему надо разжевывать такие тривиальные вещи?

Потому, что у всех работы разные. И мне реально интересно, какой херней должен страдать на работе программист, чтобы компиляция длительностью в 5 минут снижала его продуктивность.

Но если этот программист методом копипасты за полчаса клепает на коленке цветное логирование на терминал, то как-то картинка проясняется.

eao197 ★★★★★
()
Ответ на: комментарий от kawaii_neko

Честно говоря, метапрограммирование поверх pattern matching крайне фиговая идея вцелом. В основном из-за того, что человеку этим крайне ненаглядно пользоваться в отличие от упомянутого выше defmacro.

А можно на примере?

yetanother ★★
()
Ответ на: комментарий от eao197

акой херней должен страдать на работе программист, чтобы компиляция длительностью в 5 минут снижала его продуктивность.

ты ведешь некорректно беседу. это хамское, оценочное провокационное заявление.

пять минут задержки между экспериментами это очень много на фоне отсутствия этих задержек.

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