URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 121757
[ Назад ]

Исходное сообщение
"Утверждён стандарт C++20"

Отправлено opennews , 07-Сен-20 09:43 
Комитет ISO по стандартизации языка C++  утвердил международный стандарт "C++20". Представленные в спецификации возможности, за исключением единичных случаев, поддерживаются в  компиляторах  GCC, Clang и Microsoft Visual C++. Поддерживающие C++20 стандартные библиотеки реализованы в рамках проекта Boost...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=53670


Содержание

Сообщения в этом обсуждении
"Утверждён стандарт C++20"
Отправлено Alex , 07-Сен-20 09:43 
К C++40 многие разработчики уже не заметят как плавно стали brainfuckerами.
Язык уже настолько мутировал что для не посвящённого программиста из других языков будет выглядеть все как случайный набор символов...

"Утверждён стандарт C++20"
Отправлено anonimm , 07-Сен-20 09:49 
Уже давно проводятся конкурсы по написанию максимально непонятного кода на c и c++, любителям стрелять себе в ногу не нужно ждать ещё 20 лет.
С другой стороны, почти на любом ЯП можно написать хорошо читаемый код.

"Утверждён стандарт C++20"
Отправлено m.makhno , 07-Сен-20 10:26 
http://ermak.cs.nstu.ru/cprog/html/

у нас вот такой в НГТУ сайт был и остается по сей день - сам чёрт ногу сломит, всякое желание пропадало учить сишки, хех


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:43 
>Си/Си++

Скажи ему пусть определится или Си или Си плюс-плюс.


"Утверждён стандарт C++20"
Отправлено Сишник , 07-Сен-20 11:52 
сиси плюс-плюс

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:05 
Какая разница? Тогда уж UB и UB++

"Утверждён стандарт C++20"
Отправлено Lex , 07-Сен-20 15:01 
Ну кстати Романов - неплохой тип, хотя сайт кнчн тот ещё.

По настоящему желание отпадало, когда вместо проги семак-другой-третий требовалось рисовать всевозможные диаграммы и барахло вроде Пролога..


"Утверждён стандарт C++20"
Отправлено коржик , 07-Сен-20 19:15 
нгту +

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 07:42 
Содержимое сайта весьма и весьма достойное.

"Утверждён стандарт C++20"
Отправлено iPony129412 , 11-Сен-20 08:01 
> у нас вот такой в НГТУ сайт был и остается по сей день

Не ври.

cs.nstu.ru перенаправляет на avtf.nstu.ru

Что ты как-то смог в недрах сайта откопать архаичную "пасхалку" не значит, что "сайт остается по сей день"


"Утверждён стандарт C++20"
Отправлено m.makhno , 11-Сен-20 08:41 
не знаю, откуда ты ходишь по сети, но с Нск с нескольких провайдеров ссылка открывается так, как я написал

"Утверждён стандарт C++20"
Отправлено iPony129412 , 11-Сен-20 08:06 
А так причём тут вообще...

И такое есть
http://ermak.cs.nstu.ru/~romanow/solus_rex/index.htm

Опеннетчикам понравится... Кто такой Ермак не знаю.


"Утверждён стандарт C++20"
Отправлено m.makhno , 11-Сен-20 08:42 
я просто примеры кода показать...

А Ермак - казак такой знаменитый хех


"Утверждён стандарт C++20"
Отправлено iPony129412 , 11-Сен-20 10:43 
> я просто примеры кода показать...

Ну так то же АВТФ - там что-то уровня ПТУ.
А академическое это ан приматов - там тебе за чуть что не так, так сразу по башке томиком Кнута дадут.
Ещё и компилятор заставят писать, что бы знал, как происходит, а не так писал калякал...


"Утверждён стандарт C++20"
Отправлено Аноним , 13-Сен-20 13:18 
отличный сайт, спасибо за ссылку.

"Утверждён стандарт C++20"
Отправлено ivan , 08-Сен-20 19:55 
А причём тут С?

"Утверждён стандарт C++20"
Отправлено Жилин , 12-Сен-20 10:33 
Не надо присовокуплять Си к этой @#$%$^. Си умно спроектированный лаконичный и очень прагматичный язык.

"Утверждён стандарт C++20"
Отправлено asdasd , 07-Сен-20 10:09 
Для "непосвященного" тарабарщиной будут выглядеть только особая магия на template'ах (где смесь изи SFINAE и прочего constexpr). Все остальное интуитивно понятно.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:23 
При том SFINAE тарабарщина с C++20 заменяется Концептами, которые более читаемые. Так что все конструкции C++ должны быть понятны программисту другого высокоуровнего языка программирования (в отличие от большинства конструкций некоторых эзотерических языков).

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:10 
Представления комитета C++:
> SFINAE тарабарщина с C++20 заменяется Концептами, которые более читаемые

Реальность: к тарабарщине SFINAE добавляется ещё и тарабарщина концептов.


"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:05 
Одна тарабарщина заменилась другой. Мало нужной для прикладных программистов. Разработчики стандарта стали делать стандарт чисто для себя

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 14:36 
> Прекращена поддержка большинства операций с переменными, объявленными с ключевым словом volatile, в том числе запрещены операции "++" и "--" со стандартными типами

и это?


"Утверждён стандарт C++20"
Отправлено CAE , 07-Сен-20 12:21 
При этом по-прежнему ругать за это принято perl :)
Хотя он, объективности ради, в среднем уже давно понятнее современного C++

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 11:03 
Это справедливо для любого языка, для которого разрабы боятся сломать совместимость и послать на йух всех пользователей устаревших несовместимых версий, объявив их недолюдьми. В питоне тоже теперь стремаются, после того как выянилось, что макакам лень мигрировать код, они лучше старое говно по типу python 2 жрать будут, даже сейчас, когда 2 официально объявлен мёртвым, у очень многих проектов есть требования совместимости с python 2. Так что питона 4 не будет, и его постигнет участь всего остального стабильного говномейнстрима. А жаль.

"Утверждён стандарт C++20"
Отправлено InuYasha , 09-Сен-20 15:31 
Не побоялись и создали D. Где он сейчас...

"Утверждён стандарт C++20"
Отправлено trdd , 08-Сен-20 16:38 
Харэ ныть. Если не осилятор сиди и ржавей дальше вместе с Rust. У нормальных людей всё красиво логично и понятно. А все конструкции тебя никто использовать вообще не заставляет.

Твой рас вообще читать не возможно.


"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:04 
Язык настолько мутировал, что он не особо радует даже С++ стандарта 11 и 17. Всё дальше от прикладных программистов, какой то междусобойчик для разработчиков стандартов.

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:19 
В этом куске говна до сих пор нормально не сделаны индексы для многомерных динамических массивов. Чтобы без извращений. Сколько стандартов, но до сих пор не удосужились.

"Утверждён стандарт C++20"
Отправлено trolleybus , 07-Сен-20 09:44 
> Основные особенности C++20

А что, модули больше не основная особенность?


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:46 
Пока на них основная масса либ перейдет, уже C++32 выйдет :(

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 10:58 
CMake не поддерживает - значит нет.

"Утверждён стандарт C++20"
Отправлено eee , 07-Сен-20 09:46 
мляяяяя, хочу обратно в 1989 год, когда плюсы были простым и понятным языком

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 09:48 
Не обязательно так далеко, достаточно просто в до-C++11 времена.

"Утверждён стандарт C++20"
Отправлено anonimm , 07-Сен-20 09:53 
Что вам мешает писать код, ограничиваясь старыми возможностями? А многие из нововведений c++-профессионалы долго ждали.

"Утверждён стандарт C++20"
Отправлено Sw00p aka Jerom , 07-Сен-20 10:09 
Как же они долго ждут динамической типизации :)

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:38 
В компилируемом языке?

"Утверждён стандарт C++20"
Отправлено коржик , 07-Сен-20 19:19 
в c# dynamic есть. Вижу крайне редко, чтобы кто-то пользовался

"Утверждён стандарт C++20"
Отправлено bOOster , 07-Сен-20 21:25 
С шарп компилируемый язык!? Издеваешься чтоли? То что является кодом для виртуальной машины - компиляцией называться не может. Это интерпретатор.
Для тех кто в танке.

"Утверждён стандарт C++20"
Отправлено Sw00p aka Jerom , 07-Сен-20 21:29 
> Для тех кто в танке.

забыли про рантайм, а шаблоны в ц++ что это?



"Утверждён стандарт C++20"
Отправлено bOOster , 07-Сен-20 21:35 
>> Для тех кто в танке.
> забыли про рантайм, а шаблоны в ц++ что это?

Это не аналог Си шарп и Java


"Утверждён стандарт C++20"
Отправлено Sw00p aka Jerom , 07-Сен-20 21:55 
> Это не аналог Си шарп и Java

не С#, не Java - не исполняют программу читая построчно исходный код (ака интерпретация)



"Утверждён стандарт C++20"
Отправлено daemontux , 08-Сен-20 04:49 
Вопрос не в этом.
Сможете запустить прогу на Java, без самой явы? На компилируемом языке сам компилятор не нужен ля запуска.

"Утверждён стандарт C++20"
Отправлено alex312 , 08-Сен-20 10:21 
вопрос в том, что ты придумал себе определение и квакаешь.

Ознакосься, для начала, с википедией https://ru.wikipedia.org/wiki/%D0%9A%D0%...


"Утверждён стандарт C++20"
Отправлено Sw00p aka Jerom , 08-Сен-20 11:59 
> Ознакосься, для начала, с википедией https://ru.wikipedia.org/wiki/%D0%9A%D0%...

продублирую и вам "моё" определение

В исполнение инструкций тем же ЦП это что? Зачем путать понятия процесса исполнения с процессом подготовки к исполнению? Интерпретация - это процесс исполнения, компиляция - процесс подготовки к исполнению. Отсюда сам по себе исходный код джава прогрыммы не готов к исполнению, а вот тот же питоновский код - готов к исполнению посредством его интерпретации. И говоря о ЯП - говорят об иго исходном коде, а не промежуточных состояниях (байткодах, биткодах и тд).

> вопрос в том, что ты придумал себе определение и квакаешь.

ква, ква и не вижу от вас опровержения истинности моих определений.


"Утверждён стандарт C++20"
Отправлено alex312 , 08-Сен-20 12:27 
>Сможете запустить прогу на Java, без самой явы?

Во первых, если отвечать на твой, немного дебильный вопрос, то да без Явы программу на Яве не запустишь.
Точно так же как не запустишь программу на С++ без соответствующего компилятора.

И то что компилятор Явы компилирует в инструкции виртуальной машины Явы не делает его менее компилятором чем clang, который компилирует в LLVM IL.


"Утверждён стандарт C++20"
Отправлено bOOster , 08-Сен-20 07:20 
>> Это не аналог Си шарп и Java
> не С#, не Java - не исполняют программу читая построчно исходный код
> (ака интерпретация)

А выполнение ПРОМЕЖУТОЧНОГО кода ПОБАЙТОВО виртуальной машиной это не интерпретация?


"Утверждён стандарт C++20"
Отправлено alex312 , 08-Сен-20 10:23 
НЕТ.

"Утверждён стандарт C++20"
Отправлено Sw00p aka Jerom , 08-Сен-20 11:55 
> А выполнение ПРОМЕЖУТОЧНОГО кода ПОБАЙТОВО виртуальной машиной это не интерпретация?

В исполнение инструкций тем же ЦП это что? Зачем путать понятия процесса исполнения с процессом подготовки к исполнению? Интерпретация - это процесс исполнения, компиляция - процесс подготовки к исполнению. Отсюда сам по себе исходный код джава прогрыммы не готов к исполнению, а вот тот же питоновский код - готов к исполнению посредством его интерпретации. И говоря о ЯП - говорят об иго исходном коде, а не промежуточных состояниях (байткодах, биткодах и тд).



"Утверждён стандарт C++20"
Отправлено Онаним , 09-Сен-20 09:50 
Там между сциллой и харибдой. JIT, который на ходу транслирует промежуточное представление в то, что исполнит конкретный проц.

"Утверждён стандарт C++20"
Отправлено Кайф , 08-Сен-20 04:23 
Шаблоны компилятся в машинный код

"Утверждён стандарт C++20"
Отправлено Sw00p aka Jerom , 08-Сен-20 12:02 
> Шаблоны компилятся в машинный код

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


"Утверждён стандарт C++20"
Отправлено maximnik0 , 07-Сен-20 21:58 
>С шарп компилируемый язык!?

Вики утверждает что стандарт на язык придусматривает и возможность компилируемого варианта создания приложения.По крайне мере в LLVM и Mono такие возможность предостовляют для некоторых платформ,правда разиер от  80 мгб приложения ....некого не удивит сейчас простой калькулятор столько же весит.


"Утверждён стандарт C++20"
Отправлено bOOster , 08-Сен-20 07:43 
>>С шарп компилируемый язык!?
> Вики утверждает что стандарт на язык придусматривает и возможность компилируемого варианта
> создания приложения.По крайне мере в LLVM и Mono такие возможность предостовляют
> для некоторых платформ,правда разиер от  80 мгб приложения ....некого не
> удивит сейчас простой калькулятор столько же весит.

Что чушь, а не компиляция. Включение в состав приложения виртуальной машины в промежуточном коде LLVM. А суть остается той-же. Интерпретация промежуточного кода при выполнении. Компилированные приложения не нуждаются в дополнительных средствах выполнения. Код готов для выполнения на процессоре целевой платформы.
А LLVM это компилятор уровня исполнения в данном случае. C шарп это инвалид, который при первом запуске транслирует промежуточный код своей виртуальной машины посредством LLVM в код целевой платформы, а потом выполняет интерпретацию промежуточного кода самого приложения.

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


"Утверждён стандарт C++20"
Отправлено maximnik0 , 08-Сен-20 12:40 
>А суть остается той-же.

Хорошо а что там с mono,старых версий ?Я помню по диску LinuxFormat -ряд приложений статически скомпилировано  без всякой виртуальных машин....
Правда там модель памяти и безопасности  была unsafe (если в терминологии не ошибаюсь).....Все статически скомпилировано под определенную платформу, правда подало как бы не чаще ,в качестве графической обертки использовался  GTK# .


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 15:00 
В танке тут ты.

Любые ООП языки не компилируются в машинных код. Нету в компьютерах никаких классов (там структуры), событий (там конечные автоматы) и т.д. "Компиляторы" ООП языков состоят из двух частей. Сначала они генерируют промежуточный байткод, переделывая объяекты, шаблоны и прочий неестественное для железа синтаксический сахар внутрь структурного байткода. Далее есть варианты
1. Гонять байткод как есть внутри виртуальной машины
2. Компилирровать налету в зависимости от имеющегося рантайма
3. Компилировать нативно.

С++ отличается от Java и С# тем, что С++ не имеет никакой стандартизации байткода, несовместим сам собой в рамках платформы при смене компилятора даже в рамках одной платформы, а кроссплатформенные библиотеки на С++ это Ад и Израиль. В остальном это то же самое.

Ничего не мешает скомпилировать IL, который нагенерил .NET в машинный код. Были среды для этого. Та же Unity (игровой движок) это делала сто лет назад. У самого MS есть .NET Native https://docs.microsoft.com/en-us/dotnet/framework/net-native/ Оно пока только с таргетом под UWP, но обещают расширить количество платформ в будущем.

В MSVC, кстати, С1-компилятор можно заменить на clang, чтобы вместо LLVM генерировался нативный код.

Интерпретатор - компилятор... тьфу. Это форум в Интернете, а не контрольная по информатике. Вон есть Python. Тоже такой ООП-язык. И вон он CPython, который работает так же как .NET по умолчанию. И есть PyPy который тебе и в нативный код тебе соберёт.

Причем тут язык-то?!


"Утверждён стандарт C++20"
Отправлено bOOster , 08-Сен-20 17:04 
>[оверквотинг удален]
> лет назад. У самого MS есть .NET Native https://docs.microsoft.com/en-us/dotnet/framework/net-native/
> Оно пока только с таргетом под UWP, но обещают расширить количество
> платформ в будущем.
> В MSVC, кстати, С1-компилятор можно заменить на clang, чтобы вместо LLVM генерировался
> нативный код.
> Интерпретатор - компилятор... тьфу. Это форум в Интернете, а не контрольная по
> информатике. Вон есть Python. Тоже такой ООП-язык. И вон он CPython,
> который работает так же как .NET по умолчанию. И есть PyPy
> который тебе и в нативный код тебе соберёт.
> Причем тут язык-то?!

Ты прав относительно JAVA, C шарп.
А вот относительно C++ - полная чушь хоть он также ООП, у него в принципе нет байткода/промежуточного кода, а тем более никакой стандартизации, так же как и в C. Компилятор рожает обьектный файл, который потом линкуется динамически/статически. LLVМ в расчет не берем, к языку программирования в своей сути он отношения не имеет.
То что касается MS - даже комментировать не буду. Даже если с байткодными граблями код не переносим между различными платформами - тьфу на него еще раз.
Если грызть кактус то явно не от Майкрософт.


"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 00:21 
> А вот относительно C++ - полная чушь хоть он также ООП, у него в принципе нет байткода/промежуточного кода, а тем более никакой стандартизации, так же как и в C.

Мосье теоретик, как я посмотрю...

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

> Даже если с байткодными граблями код не переносим между различными платформами - тьфу на него еще раз.

И опять мосье теоретик. Все там переносимо, пока вы за пределы байткода не вырулите. Если библиотека не входящая в .NET Core требует нативную библиотеку или привязана к ядру, то это не кроссплатформенная библиотека. Тот же WPF требует DirectX, а он давно часть ядра. Это не только MS и .NET касается, это везде так.


"Утверждён стандарт C++20"
Отправлено Sw00p aka Jerom , 07-Сен-20 21:51 
> В компилируемом языке?

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


"Утверждён стандарт C++20"
Отправлено anon345634758 , 07-Сен-20 13:00 
А чего ждать собственно?
Все кому надо было, давно нагородили собственные аллокаторы.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:29 
Иногда код надо еще и читать, и уже читаемый код может быть написан с применением "нововведений"

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:42 
"Новведения" позволяют избегать накруток этих "нововведений" сверху-сбоку языка самими программистами.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 14:16 
Из-за чего язык становится непростым и непонятным, об этом было исходное сообщение

"Утверждён стандарт C++20"
Отправлено мимокрок , 07-Сен-20 09:51 
Возвращаться в 89 не надо, ведь и сегодня ещё есть ламповая сишечка

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:06 
В компании с GObject?

"Утверждён стандарт C++20"
Отправлено Какер , 07-Сен-20 15:05 
Ну, там ООП на уровне C++, только синтаксис корявее. Другое дело, что в C++ ООП не сказать что образцовое :)

"Утверждён стандарт C++20"
Отправлено n242name , 08-Сен-20 02:08 
где ООП образцовое?

"Утверждён стандарт C++20"
Отправлено Пользователь , 08-Сен-20 11:23 
В народе поговаривают что в Objective-C, но не прижился

"Утверждён стандарт C++20"
Отправлено n242name , 11-Сен-20 05:19 
> В народе поговаривают что в Objective-C, но не прижился

Это у того, у которого неймспейсы втюхали в имена классов?
Пойду проблююсь...


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 23:06 
> где ООП образцовое?

Очевидно, что в праматери всех и вся - Smalltalk.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:29 
Тогда пиши на Rust

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:32 
Действительно, в нём же всё очень понятно и на него огромное количество вакансий </sarcasm>

"Утверждён стандарт C++20"
Отправлено Lex , 07-Сен-20 15:05 
Имхо, таки понятней, чем на свеженьких плюсах или жабе

"Утверждён стандарт C++20"
Отправлено 0x2A , 07-Сен-20 18:10 
Видел вакансию с++ и/или Rust - 450k деревянных

"Утверждён стандарт C++20"
Отправлено Страшный рукожоп , 08-Сен-20 13:27 
Обещяю вам 800k деревянных :-)

"Утверждён стандарт C++20"
Отправлено ДмитрийСССР , 07-Сен-20 10:48 
А если допустим писать на С++11, то можно ли будет собрать софт под современные ОС? И можно ли будет собрать софт на С++11 под современную ОС через лет 10?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:23 
Да и да

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:49 
Лучше минимум 14. Уже не все либы поддерживают C++ ниже 14. Плюс 14 более вкусные лямбды
В идеале - минимум 17, как Qt 6

"Утверждён стандарт C++20"
Отправлено Michael Shigorin , 07-Сен-20 12:04 
Правило опытного админа: "не тяни в рот каждую новую блестяшку".
Правило зелёного разработчика: "ой, блестяшечки!!1".

Как вы мне дороги...


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:28 
> Правило опытного админа: "не тяни в рот каждую новую блестяшку".
> Правило зелёного разработчика: "ой, блестяшечки!!1".
> Как вы мне дороги...

Именно поэтому, Михаил, ваша команда и притянула новую блестяшку (systemd) в свой дистрибутив, дефолтом, хотя прежний вариант очень хорошо работал, причём как притянули?!... освежите пожалуйста  в памяти!
И судя по тому, какое сейчас положение вещей, то воз будет ехать по заданной колее, "Just as planned".

Вы нам тоже дороги, хотя вот, за державу обидно!


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 15:43 
Правило опытного разработчика: "блестяшки желательно с аппетитом рассасывать, изучать, тестировать и постепенно внедрять, если достаточно притягательно блестит"

На текущий момент блестяшка - C++20. С ним надо аккуратно, есть пока даже не до конца реализован.

А вот C++17 - уже актуальный для использования стандарт, меньше 14 не имеет смысла в новых/актуальных проектах, и во многих юзкейсах просто неудобно.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:15 
Осторожнее, у него сейчас начнёт подгорать, ведь его любимый lcc до сих пор не научился C++17.

"Утверждён стандарт C++20"
Отправлено Lex , 07-Сен-20 18:27 
Исходники ОСи теперь не скомпилятся  ?

"Утверждён стандарт C++20"
Отправлено llolik , 07-Сен-20 19:15 
Научился уже http://www.mcst.ru/lcc.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:52 
Научился, ага. C±17, ржунимагу.

"Утверждён стандарт C++20"
Отправлено llolik , 07-Сен-20 22:16 
> Научился, ага. C±17, ржунимагу.

Ну ржать-то можешь сколь угодно, но тем не менее работа идёт и код компилируется. ± - это точно atomic-и GCC-extы какие-нибудь. Что там ещё не хватает, спроси сам, у него (https://www.linux.org.ru/people/alexanius/profile), например. Я точно знаю, что Алексей работает непосредственно над компилятором lcc.


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 10:23 
Да чего спрашивать? Как будто я сам мало с этим говном дела имел… Заявляют совместимость с GCC 5-летней давности, по факту и её нет, даром что заголовки оттуда натырили.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:58 
Можно и С++ 98 использовать и да оно соберется... Но зачем ?.
Есть даже специальные библиотеки, которые переносят новые возможности стандартной библиотеки на старые стандарты языка.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:10 
>И можно ли будет собрать софт на С++11 под современную ОС через лет 10?

Если не выкинут опцию -std=c++11 или -std=gnu++11.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:17 
> если допустим писать на С++11, то можно ли будет собрать софт под современные ОС?

avxsynth под debian-buster не собирался (нужны патчи), а в ubuntu-xenial норм. Как раз какие-то конструкции стали запрещены.


"уже сейчас ничего из старого не собирается тк куча варнингов"
Отправлено Poulch , 07-Сен-20 21:30 
трактуется как ошибка. и переписать сложный build/mаkefile большого проекта та еще задача... те тупо свежий gcc не соберет ничего из времен ну допустим gcc 2.95 без танцев с бубном.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:56 
Да, да. Без работы с пмятью, статического анализа, итераторов, стандартных колекций, модулей и вообще без всего. ДЛя этого есть С.
Для с++ нужно прочитать 2-3 книги и посидесть с примерами... иначе да... все "сложнанипанятна" так-то многие старые вещи стараются не использовать, например с-шные масивы - они конечно есть, но std::array<> лучше (с концептами - еще лучше).
Мне не хватает только метаклассов, но они еще сырые, надеемся на 23-й год. Такое кол-во хаков и макросов с автогенераторами можно будет объявить легаси... ух.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 14:41 
В C RAII нет. Вот был бы язык как C только с RAII, а так призодится с C++ мучиться :-)

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 08:56 
Кто мешает использовать концепцию RAII в С

"Утверждён стандарт C++20"
Отправлено DerRoteBaron , 08-Сен-20 10:35 
Видимо, невозможность это сделать красиво и читаемо по стандарту и нежелание использовать гнутые расширения

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 16:05 
>мляяяяя, хочу обратно в 1989 год, когда плюсы были простым и понятным языком

Плюсы никогда не были простым и понятным языком.


"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 19:40 
Чушь полнейшая, плюсы до стандарта 11 года(или 0х) - вообще неюзабельны.

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:06 
Ну хотя бы С++ 11 и всё. Горшочек не вари.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 09:53 
> Добавлены "концепции"

А когда наконец добавят концепцию KISS?


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:25 
Эту концепцию должен применять и разработчик ПО, никто её за вас не применит

"Утверждён стандарт C++20"
Отправлено СССР , 10-Сен-20 00:29 
если нужен кисс пиши на си  )

"Утверждён стандарт C++20"
Отправлено anonimm , 07-Сен-20 09:53 
Мои поздравления коллегам-плюсовикам!

"Утверждён стандарт C++20"
Отправлено Онаним , 07-Сен-20 09:56 
Спейсшип добавили наконец, лол.
А так да, множество расширений, которые уже активно использовались, наконец-то стандарт.

"Утверждён стандарт C++20"
Отправлено имя_ , 07-Сен-20 10:01 
концепты выглядят интересно

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:00 
Вагон дыр закрывают в шаблонах. Теперь в правильно написанный шаблон нельзя запихнуть то что в нем не должно быть - компилятор не даст.  

"Утверждён стандарт C++20"
Отправлено bOOster , 07-Сен-20 21:27 
Ну теперь любители прихать куда-либо что-либо недолжное в нем быть - взвоют.. Сишники, где вы??

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:19 
Шаблоны, вообще, зло. Write only. Спустя некоторое время даже сам автор перестает понимать, что делается в его шаблоне.)))

"Утверждён стандарт C++20"
Отправлено Fracta1L , 07-Сен-20 10:03 
Дырени наличествуют?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:49 
Конечно, это же C++, он весь состоит из UB

"Утверждён стандарт C++20"
Отправлено bOOster , 07-Сен-20 21:28 
Мдаа, уж. Как самокритично...

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 21:12 
Это ж С++, всё зависит от прокладки… точнее - от прокладок.

"Утверждён стандарт C++20"
Отправлено EddyEm , 08-Сен-20 07:35 
Добавили новых.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:16 
Ура! Улучшили язык, на котором написана треть повседневного софта

Мои поздравления всем C++никам! Вы молодцы, на вас всё держится


"Утверждён стандарт C++20"
Отправлено Odalist , 07-Сен-20 23:53 
>Вы молодцы, на вас всё держится

Спасибо. Еще я могу на Хаскеле.


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 19:29 
нет, спасибо, на хаскеле не надо.

"Утверждён стандарт C++20"
Отправлено Odalist , 08-Сен-20 19:52 
> нет, спасибо, на хаскеле не надо.

Хорошо, тогда я буду продолжать радовать всех прогами на С++.


"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 11:31 
> Вы молодцы, на вас всё держится

Надо говорить «вы все красавцы!»


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:21 
В с++ каждый фреймворк все ещё изобретает строки или спустя 20 лет все же перешли на std::string?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:51 
После 11 плюсов многие компании отказались от кастомных строк в пользу std::string
Но тот же QString всё ещё удобнее и функциональнее

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:42 
Т.е. всё ещё велосипедят...

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 18:51 
Стандартные классы в стл вообще довольно куцые

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 19:04 
std::string - это боль C++ и один из самых худших дизайнов класса (детали смотри у Саттера).
А сами по себе "строки" - это тоже боль и тормоза и зоопарк видов строк (без разницы в каком языке).
Поэтому - неудивительно что "изобретали". Что сейчас - не знаю.

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 07:11 
Изобретатели потому что почти 20 лет лет небыло строк никаких, только массивы из символов, а потом переходить не хотели.
Ни в java, ни в js, ни даже в Паскале проблем со строками небыло.

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:08 
std вся сплошная боль по сравнению со стандартными библиотеками любых других современных языков. Бред наркомана.

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 20:02 
строки уже constexpr, а ты их всё ещё изобретаешь. *бать ты застрял в прошлом, братюнь.

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 20:44 
Сейчас нет необходимости, это было во времена C++98/03. Теперь разве что свои аллокаторы иногда изобретают.

"Утверждён стандарт C++20"
Отправлено СССР , 09-Сен-20 23:28 
в чем плохо создать свой класс обертка и дополнить его своими методами ?

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:20 
В С++ до сих пор индексы нормально записываемые не изобрели для многомерных динамических массивов. Чтоб без извращений

"Утверждён стандарт C++20"
Отправлено lockywolf , 07-Сен-20 10:24 
Он всё ещё строгое надмножестао с++? Или всё?

"Утверждён стандарт C++20"
Отправлено anon345634758 , 07-Сен-20 13:03 
Ну судя по тому что выкинули volatile, уже скорее нет.
Но мне кажется это и к лучшему

"Утверждён стандарт C++20"
Отправлено SR_team , 07-Сен-20 19:53 
> выкинули volatile

так и не успел понять зачем он был нужен


"Утверждён стандарт C++20"
Отправлено draw1 , 08-Сен-20 03:14 
Например, чтоб "бить по рукам" оптимизатор в хитрых низкоуровневых моментах. Иногда надо чтоб код делал ровно то что написано. Буквально. Без сюрпризов и самодеятельности (а в ассемблер уходить лень ради какой-то мелочи, да и переносимость хочется).
Может для аналогичного теперь есть какая-нибудь очередная новая синтаксическая конструкция...

"Утверждён стандарт C++20"
Отправлено Webmonkey , 08-Сен-20 11:18 
>"бить по рукам" оптимизатор в хитрых низкоуровневых моментах

UB-driven development?


"Утверждён стандарт C++20"
Отправлено Eddy_Em , 08-Сен-20 07:37 
Для разного рода embedded'щины.

"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 03:49 
Ну вот есть у нас простенький микроконтроллер, на нем куча разных прерываний вылезает, во всех переменные могут поменяться, а без volatile - компилятор, который вообще не знает про прерывания, так соптимизирует что из переменной будет читаться одно и тоже.

"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 06:25 
Для того чтобы сказать компилятору что это область памяти (переменная) особенная и может измениться в любой момент и она тебе (компилятору) не подконтрольна, так что не нужно производить над ней оптимизации. Так же, компилятор, на некоторых платформах, вставляет instruction fans (компилятор - не перемешивай порядок операций над этой областью) и cpu fans (процессор - выполняй инструкции в том порядке в котором они написаны, а не перемешивай в угоду производительности ибо есть side эффекты). Применяется когда ты работаешь с регистрами CPU, внешними устройствами, многопоточность (google: Scott Meyers Singleton, как самая известная мне иллюстрация проблемы) и другой "особенной" памятью.

"Утверждён стандарт C++20"
Отправлено anonymous , 08-Сен-20 09:50 
Его не выкинули, просто теперь вместо 'PORTA &= 0xF0' нужно писать 'PORTA = PORTA & 0xF0', где PORTA это '#define PORTA (*(volatile uint8_t*)(0xBEEF))'.
Смысл этого изменения в том, что некоторые люди думали что операции над volatile атомарные, и пытались использовать его вместо std::atomic, с соответствующим результатом.
А теперь явно видно, что запись и чтение volatile это разные операции.

"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 03:28 
Взял и утрамбовал бифа. Люди думали - слабовато, надо так - человечество считало что volatile - это atimic, но потом я прочитал ман пагу и всех спас..

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 20:51 
Не выкинули, но настоятельно советуют его использовать только по назначению - при прямой работе с хардварью. Что правильно - для всяких там синхронизаций надо использовать средства стандартные библиотеки, а не ручками спинлоки крутить.

"Утверждён стандарт C++20"
Отправлено Alex , 11-Сен-20 12:52 
чтобы ручками спинлоки крутить есть std::atomic если надо

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:23 
Давно нет.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:35 
Или вы не верите в автокомпилит ?

"Утверждён стандарт C++20"
Отправлено Grunman , 07-Сен-20 10:38 
Особую пикантность новости придает то, что модули, которые все так ждали, ни одним из перечисленных компиляторов не поддерживаются.

"Утверждён стандарт C++20"
Отправлено anonymous , 07-Сен-20 13:24 
clang & msvc экспериментально давно поддерживают модули.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:26 
Может формально какими-то и поддерживаются, только толку пока мало. STL-то пока совсем не в модулях.

"Утверждён стандарт C++20"
Отправлено anonymous , 07-Сен-20 13:29 
А этого и не было в стандарте пока. Такие дела.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:38 
Ничёси! Летающая тарелка прям как в Perl'е!

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:39 
Любого кто скажет что язык Си является подмножеством языка Си плюс-плюс - сразу бить в морду.

"Утверждён стандарт C++20"
Отправлено К , 07-Сен-20 13:01 
мамин суп покушали уже? Боец вы наш интернетовский.

"Утверждён стандарт C++20"
Отправлено Ordu , 09-Сен-20 16:51 
Язык Си является подмножеством языка C++.

Я сказал, а теперь ударь меня, детка.


"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:10 
А что нет ? Вполне можно программировать в гибридном стиле, на этаком суржике из С++ и С.))) Любить printf  и прочее)))

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:52 
Dlang лучше.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:52 
Nim лучше.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:54 
Хаскель наше всё!

"Утверждён стандарт C++20"
Отправлено Dzen Python , 07-Сен-20 11:32 
Фу. Только F#, только дотнет, только молодость, только Мытищи, только хардкор!

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:34 
Только F*

"Утверждён стандарт C++20"
Отправлено anonimous , 09-Сен-20 20:36 
Только Oberon/Scala

"Утверждён стандарт C++20"
Отправлено Lex , 07-Сен-20 18:33 
Нее, Obj-C круче
.. и, кроме шуток, код выглядит ощутимо приятней и документированней( когда глаза привыкнут к тому обилию квадратных скобок кнчн )

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 18:45 
Ну а чем квадратные скобки принципиально хуже фигурных?

"Утверждён стандарт C++20"
Отправлено Lex , 07-Сен-20 19:07 
Ничем
[[[но поначалу] бывает ] непривычно:[такое обилие:их ]]

Хотя в целом и концепция с передачей сообщений там была весьма интересна


"Утверждён стандарт C++20"
Отправлено Eddy_Em , 08-Сен-20 07:40 
В бездну скобочки! Begin-end - сила!

"Утверждён стандарт C++20"
Отправлено НяшМяш , 08-Сен-20 02:04 
> Нее, Obj-C круче

После появления свифта забыл как страшный сон к счастью. Юзаю только если что-нибудь плюсовое надо обернуть.
> код выглядит ощутимо приятней и документированней

Это заслуга многословной стандартной библиотеки, что не стали в три символа упихивать всякие std_make_shared_unique_ptr.


"Утверждён стандарт C++20"
Отправлено Lex , 08-Сен-20 08:33 
> После появления свифта забыл как страшный сон к счастью. Юзаю только если
> что-нибудь плюсовое надо обернуть.

У свифта, насколько помню, поддержка норм работы с т.н статическими либами обычно не очень.
Особенно, если свифтовые библиотеки распространяются в скомпиленном виде, без исходников и как т.н динамические.


> Это заслуга многословной стандартной библиотеки, что не стали в три символа упихивать
> всякие std_make_shared_unique_ptr.

Даже не совсем в этом дело, там своеобразный подход к именованию аргументов функций( можно передавать их читабельные имена помимо "внутренних" названий применяемых внутри конкретной функции или метода, при наличии которых нередко даже документации не требуется ):

На сях:
объект.метод( 1, 2, "ололо" )

На обдж-сях:
[объект какой-тоМетодДляЕдиницы:1 читаемое_название_второго_аргумента:2 читаемое_название_третьего_аргумента:@"ололо" ]

Ну и отправка сообщения с аргументами, а не просто вызов какого-то куска кода, тоже таки весьма радовал.
В некоторых случаях это позволяло без проблем и костылей получить весьма устойчивый к изменению апи библиотек код( т.е рабочий, притом, на нескольких их вариантах ).


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:43 
Может Nim и хорош, но у D знакомый C-подобный синтаксис.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:09 
Пользуетесь D? Чем привлекает, нравится?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:54 
Когда за синтаксисом кода не видно логики программы, это плохо. Всё дальше уходят от ключевой особенности Си - простоты. Хотя, как уже намекнул коллега выше, никто не мешает не пользоваться.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 10:56 
Хорошо что в C++ это не так, как в вашем любимом языке. С каждым релизом становится всё проще писать C++ код

"Утверждён стандарт C++20"
Отправлено Tita_M , 07-Сен-20 11:13 
>С каждым релизом становится всё проще писать C++ код

This is what c++ programmers actually believe!


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:27 
То ли дело любой другой язык програмирования:

    public static void NotNull < T > (T argument,  
        [CallerArgumentExpression("argument")] string argumentExpression = null)  
    where T: class {  
        if (argument == null) throw new ArgumentNullException(paramName: argumentExpression);  
    }


"Утверждён стандарт C++20"
Отправлено Dzen Python , 07-Сен-20 11:31 
Уж явно читаемей, чем код на джаве, который позиционируется как копроративный язык для самых маленьких.
Для полного познания дзена рекомендую открыть любой коммунити код у гугла или джет-брейнс.

"Утверждён стандарт C++20"
Отправлено h65eyh5 , 07-Сен-20 12:46 
>джаве, который позиционируется как копроративный язык для самых маленьких

С Go спутали.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 14:08 
На джаве все вполне читаемо. Многословно, но это другая проблема.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:17 
    public static void NotNull < T > (T argument,  
        [CallerArgumentExpression("argument")] string argumentExpression = null)  
    where T: class {  
        if (argument == null) throw new ArgumentNullException(paramName: argumentExpression);  
    }


Это вообще что за язык ^
Swift?


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:18 
C#

"Утверждён стандарт C++20"
Отправлено anonimous , 08-Сен-20 01:22 
generic function Min<T>(const A, B: T): T;
begin
  if A < B then Result := A else Result := B;
end;

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:21 
> С каждым релизом становится всё проще писать C++ код

…и всё сложнее — понимать его.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:04 
>  никто не мешает не пользоваться

мешать-то не мешает, но если в 2020 писать код на С++98 или С++03 (последние стандарты, с которыми я имел дело), смотреть будут странно.
И опять же всю эту мутотень один хрен изучать, потому что какой-нибудь Вася Пупкин будет-таки пихать 17 или даже 20 стандарт. Я вот в одном коде увидел эти лямбды и нихрена не понял, что там написано.
Как же хорошо, что я давно соскочил с этого монстра...


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:25 
Зато в ругих языках лямбды предельно просто понять, и их синтаксис загуглить </sarcasm>

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:27 
В Erlang, например, все элементарно:
fun (Arg) ->

"Утверждён стандарт C++20"
Отправлено коржик , 07-Сен-20 19:45 
мои любимые в .net: (x, y) => x + y

так же в расте: |x, y| x + y


"Утверждён стандарт C++20"
Отправлено НяшМяш , 08-Сен-20 02:06 
>  мои любимые в .net: (x, y) => x + y

Главное всегда уточнять, а то подумают что ты JSник (1 в 1 такой же синтаксис)


"Утверждён стандарт C++20"
Отправлено Lex , 08-Сен-20 15:26 
> 1 в 1 такой же синтаксис

Вы не понимаете! Это - другое !!111



"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:28 
Зараза, отправился случайно.

fun(Arg) ->
some code
end

Все просто и понятно.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:33 
и даже в Расте ламбда определяется проще, чем в плюсах.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:54 
Почему "даже"?) Вообще, C++20 всё больше мотивирует изучать Хруст

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:03 
Ну так я так и сделал. Посмотрел на стандарт С++17 (а там 2000 страниц) и решил, что ну его нафиг. Вспомнил еще все заморочки ООП с паттернами и прочей хренотой и решил, что лучше уж я выучу Rust, который оказался очень даже неплохим языком. И даже местами похож на Erlang.

"Утверждён стандарт C++20"
Отправлено iLex , 08-Сен-20 14:47 
Это лишь потому, что Rust пока не успел развиться. Но с каждым релизом туда будут досыпать и досыпать синтаксического сахара и прочих наворотов, так что Rust-2030 тоже обзаведётся 2000-страничной краткой спецификацией, без которой там вообще хрен что поймёшь.

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 18:50 
> Rust-2030 тоже обзаведётся 2000-страничной краткой спецификацией, без которой там вообще хрен что поймёшь

да пофиг. На наш век хватит незамусоренного Раста, а там может что другое появится.


"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 06:53 
Ну давай начнем с того, что сам язык (С++20) описан на 475 страницах, а остальное - stl и cstdlib. У С# - 531 а сколько страниц описания у .NET мне страшно представить. У Intel - Software Developer Manuals на 5к страниц и что дальше? Пожалуйста, воздержись от написания бреда и откровенной х...ерунды в интернетах о С/C++, так рождаются странные слухи и бестолковые легенды об этом языке, которые не отражают реальное положение дел.

"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 07:11 
> воздержись от написания бреда и откровенной х...ерунды в интернетах о С/C++, так рождаются странные слухи и бестолковые легенды об этом языке, которые не отражают реальное положение дел

Давай начнем с того, что про горячо уважаемый мной С я не писал вообще ничего.
А закончим вопросом: кто ты такой, чтобы диктовать мне что писать, а что нет? Я выражаю свое мнение, ты можешь только соглашаться или не соглашаться с ним, на что мне, в общем-то, наплевать.
Что, слухи настолько страшны, что могут уничтожить С++?
Мне нравился С++98 и С++03 (последние стандарты, на которых я писал), в С++11, насколько я знаю, есть интересные штуки типа auto. Но добавление излишней сложности - вот то, что отталкивает от языка, а не какие-то слухи в интернетах.


"Утверждён стандарт C++20"
Отправлено anonimous , 10-Сен-20 18:50 
В Oberon-family языках с объемами стандартов все хорошо.

> Разработка семейства языков ALGOL — Pascal — Modula-2 — Oberon — Oberon-2 — Component Pascal отмечена редукцией сложности синтаксиса языка. Полный синтаксис языка Оберон-2 описан всего в 33 предложениях по расширенной форме Бэкуса — Наура


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:36 
но вот это же вот: [=]() { return n; }
это пипец. У меня первый вопрос был: "А что это за = в квадратных скобках и нафига оно нужно?"

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 14:52 
У лямбды ключего свойство — область видимости переменных внутри. Очевидно что символ равно какое-то отношение к этому имеет.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 15:29 
не всем это очевидно. В языках с "более простым и понятным" синтаксисом может не быть возможности управлять областью видимости переменных, а значит те, кто на них пишут уже привыкли не думать об этом

"Утверждён стандарт C++20"
Отправлено 128293 , 07-Сен-20 17:11 
Языки с "более простым и понятным" синтаксисом минимум в несколько раз тормознее плюсов

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 21:04 
ну мы-то про синтаксис лямбд, зачем тему переводишь?

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 20:51 
>У меня первый вопрос был: "А что это за = в квадратных скобках и нафига оно нужно?"

Захват по значению. [&] - захват по ссылке.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:43 
В лиспе тоже просто: (lambda (arg) body).
Других языков не знаю.
Ну и нахрена такие сложности в плюсах?

"Утверждён стандарт C++20"
Отправлено имя_ , 07-Сен-20 11:49 
ну какие там сложности? я хоть и знаком с языком только по книжке страуструпа, но ничего сложного в лямдбах крестов не вижу
https://en.cppreference.com/w/cpp/language/lambda

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:01 
А теперь представьте, что последний раз вы писали на плюсах, когда там еще этой пакости не было. И тут вам попался вот такой код:
return {
    [](take_atom) -> result<taken_atom, bool> {
      return {taken_atom_v, false};
    },
    [=](put_atom) {
      if (self->current_sender() == user)
        self->become(available_chopstick(self));
    },
  };

и поскольку это не ваш основной язык, вам лень гуглить, лезть в талмуд Страуструпа (который тоже надо нагуглить).
Нафига вот эти [] и [=]? Почему бы не сделать кейворд lambda, как в Лиспе, или fun, как в Erlang, или как в Расте: let add_one_v2 = |x: u32| -> u32 { x + 1 };?
Нет, надо такое, чтоб позаковыристей, чтоб враг не догадался.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:39 
выше если что, ссылка на справкупо лямбдам лямбд с примерами использования, открыл ее - прочитал и уже все понятней стало.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:42 
Все гораздо проще - не надо писать на плюсах.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:01 
А на чем мне написать кросплатформеную десктопную программу требующую кучу ресурсов ? На js ?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:07 
Я бы писал С или Rust (для него вроде есть GUI-либы), но пишу серверный софт и распределенные системы. На чем писать вам не знаю, на чем хотите, на том и пишите.

"Утверждён стандарт C++20"
Отправлено пох. , 07-Сен-20 18:21 
+electron

Ну да, все ж так делают.

А ресурсы... ну юзер богатый, он заплатит.


"Утверждён стандарт C++20"
Отправлено коржик , 07-Сен-20 19:50 
я бы рассматривал

https://avaloniaui.net/

или Xamarin Native. Хотя этот лучше для мобилок.


"Утверждён стандарт C++20"
Отправлено Michael Shigorin , 07-Сен-20 19:53 
> я бы рассматривал

А я бы не рассматривал, особенно если это ещё потом портировать.


"Утверждён стандарт C++20"
Отправлено коржик , 08-Сен-20 07:52 
Я с авалонией профессионально не занимался, но у меня хобби такое, запускать небольшое графическое приложение в разных языках/фреймворках.

Ну так вот эта авалония взлетела с пол пинка на линуксе винде и маке. Например, gtk, растовские iced, relm, azul, два вебассембли фреймворка попили кровь.

А тут устанавливаешь дотнет машину и все, 10 минут и у тебя в руках классисеский mvvm на xaml + c#.

Xamarin native это да, специфичная вещь, но я не знаю другой обертки над графическими примитивами разных ос, и чтобы это все работало


"Утверждён стандарт C++20"
Отправлено Lex , 08-Сен-20 15:37 
> Xamarin native это да, специфичная вещь, но я не знаю другой обертки
> над графическими примитивами разных ос, и чтобы это все работало

React-Native ?) -Но этот для мобил есчто.

К слову, у яблока не так давно с xamarin'ом срач какой-то был..

п.с: чисто для любопытства глянул в общих чертах на Xamarin.
Там реально надо так извращаться на яблоке со сборкой в вижуал студии и выгрузкой приложения в стор чуть ли не через консольку или там генерируется корректный проект, который можно по человечески и собрать и выгрузить посредством "нативного" Xcode ?



"Утверждён стандарт C++20"
Отправлено коржик , 08-Сен-20 19:22 
> React-Native ?) -Но этот для мобил есчто.

Посмотрел немного на React-Native. Есть у меня ощущение, что он не очень-то и нативный. То есть, если я правильно понимаю, это скорее аналог xamarin-forms. Сам же ксамарин это обёртки над фрагментами, активити, recyclerview, uiview, uitable, и др. То есть они практически 1 в 1 отражают апи целевой системы.

> Там реально надо так извращаться на яблоке со сборкой в вижуал студии
> и выгрузкой приложения в стор чуть ли не через консольку или
> там генерируется корректный проект, который можно по человечески и собрать и
> выгрузить посредством "нативного" Xcode ?

Вообще, скорее да, чем нет. (по ощущениям, при разработке под яблоко без извращений вообще не бывает) Но не всё так плохо.

В икскоде вы скорее всего будете только ксибки и сториборды верстать. Весь c# код пишется в JB Rider или Visual studio. Вьюшки андроида верстаете в android-studio или прямо там же, в райдере.

В целом, при отладке вы получаете вполне вменяемые стектрейсы. При сборке - вполне понятные ошибки компиляции.

Работать можно в целом


"Утверждён стандарт C++20"
Отправлено Lex , 09-Сен-20 10:15 
> Посмотрел немного на React-Native. Есть у меня ощущение, что он не очень-то
> и нативный. То есть, если я правильно понимаю, это скорее аналог
> xamarin-forms. Сам же ксамарин это обёртки над фрагментами, активити, recyclerview, uiview,
> uitable, и др. То есть они практически 1 в 1 отражают
> апи целевой системы.

Он и некоторые другие довольно похожи на Xamarin.
Основная разница у RN в том, что основной ЯП - JS, а не C#.
Может и так, но там стремятся предоставить наиболее универсальный АПИ, не зависящий от конкретной ОС с подходом к верстке, напоминающим HTML+CSS( но с нюансами, серьезно улучшающими производительность ).
И, за исключением некоторых сильно-специфичных элементов( типа переключатель ), вид итогового интерфейса и анимации получаются практически одинаковыми что на яблоке, что на андройде.

> Вообще, скорее да, чем нет. (по ощущениям, при разработке под яблоко без
> извращений вообще не бывает) Но не всё так плохо.
> В икскоде вы скорее всего будете только ксибки и сториборды верстать. Весь
> c# код пишется в JB Rider или Visual studio. Вьюшки андроида
> верстаете в android-studio или прямо там же, в райдере.
> В целом, при отладке вы получаете вполне вменяемые стектрейсы. При сборке -
> вполне понятные ошибки компиляции.

Я просто смутно помню, что у некоторых подобных штук проблема была вначале со сборкой, поскольку "нативная" система сборки много чего не поддерживала и, далее, сложности с выгрузкой( особенно с выходом Xcode 11 вроде перестали работать сторонние штуковины для выгрузки приложений в стор - теперь только через Xcode и его "органайзер", что некоторым доставило массу проблем ).
Чем, в свое время, сильно радовал RN, дающий 2 полноценных проекта, которые без проблем собираются "нативными" системами( XCode + что-нибудь для андройда типа Android Studio ).
Посему и интересуюсь, как там нынче.

> Работать можно в целом

Ну это да. Иначе популярности у штук вроде Xamarin'а не было бы


"Утверждён стандарт C++20"
Отправлено имя_ , 07-Сен-20 12:44 
в общем согласен, с наскоку можно не понять. Но есть пара уточнений:
> талмуд Страуструпа

я имел в виду его последний дайджест по языку - там всего 200 с чем-то страниц, по большей части просто разжевывание старого с советами по применению нового, а не искусство программирования на >1000

>в Расте: let add_one_v2 = |x: u32| -> u32 { x + 1 }

признаюсь, если бы не в контексте лямбд, я бы не сразу понял эту запись (|bla-bla| чем-то похоже на руби)


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:50 
> если бы не в контексте лямбд, я бы не сразу понял эту запись

именно поэтому я привел более простые примеры из Эрланга и Лиспа. Почему в С++ не сделали чего-то подобного - непонятно.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:59 
РУЧНОЕ УПРАВЛЕНИЕ ПАМЯТЬЮ ССЫЛКИ И УКАЗАТЕЛИ, ИЗБЕГАНИЕ КОПИРОВАНИЯ
Вы сравниваете два абсолютно разных по своей структуре ЯП.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:04 
Я сравниваю синтаксис. Или что, все вышеперечисленное не дает в плюсах сделать нормальный синтаксис для лямбд?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 14:56 
Не даёт, вы должны явно указать компилятору какие переменные будут доступны в замыкании и в каком виде.

"Утверждён стандарт C++20"
Отправлено Alex , 11-Сен-20 12:56 
А как взять что-то в замыкание в этом вашем расте?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:46 
> А теперь представьте, что последний раз вы писали на плюсах, когда там еще этой пакости не было.

а если вы ни на чем, не писали, то ни на чем писать и не начнете, ведь вам лень гуглить.

Вот приходится иногда ковыряться и в джаве, и в жс, и в питоне, и в еще нескольких языках и ни один из них не мой основной. Чем C++ в этом варианте хуже?


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:49 
Ну а мне 99% времени приходится ковыряться в Эрланге, который по совместительству мой основной.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:01 
а я вот пока с ним не сталкивался

> Нафига вот эти [] и [=]?

в эрланге объекты/переменные для лямбд захватываются по ссылке или копируются?


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 11:48 
Да.

"Утверждён стандарт C++20"
Отправлено Ordu , 08-Сен-20 21:45 
> В лиспе тоже просто: (lambda (arg) body).
> Ну и нахрена такие сложности в плюсах?

Захват переменных замыканием. В лиспе если у тебя есть объект, то лиспу пофигу, сколько разного кода на него ссылается. И сборщику мусора пофигу. В C/C++ же не пофигу, легко можно придти к ситуации неопределённости, когда нет возможности вне времени выполнения сказать, когда надо освобождать память. (Во-время выполнения тоже нельзя, но это лишь в дефолтном инструментарии: valgrind, например может, или сборщик мусора можно прикрутить, и он тоже найдёт память, которую следовало бы освободить).

А чтобы дать программисту возможность неопределённости избегать, запилен заморочный синтаксис лямбд, который позволяет программисту рулить тем, как переменные попадают в лямбду: копируются значения? закидываются ссылки? Заметь, что если закидываются ссылки, то программист сам должен следить за тем, чтобы не удалить объекты, на которые они ссылаются, до того, как будет удалена лямбда, иначе код лямбды обратится к освобождённой памяти. Если же копируются значения, то куда они копируются? На стек не скопируешь, потому как лямбду можно вернуть из функции и стековый фрейм может прекратить существовать. Значит копируем в кучу, а значит выделение памяти, значит с лямбдой увязан кусок памяти, который надо освободить, освобождая лямбду.


"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 12:01 
спасибо, Rust и обычная сишка попроще будут.

"Утверждён стандарт C++20"
Отправлено iPony129412 , 07-Сен-20 11:56 
> Я вот в одном коде увидел эти лямбды и нихрена не понял, что там написано.

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


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:05 
Проблема в том, что тут это стандарт и общепринятая практика, а не говнокод отдельно взятого индивида, которого можно просто напинать в курилке.

"Утверждён стандарт C++20"
Отправлено Анонимчик , 07-Сен-20 10:59 
если есть выбор, то использую c++, как c++ без классов - pod + stl + templates

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:47 
STL без классов? ;)

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:06 
>>       { a == b } -> std::boolean;

       { a != b } -> std::boolean;
Ну почему это должно выглядеть так непонятно и непоследовательно?


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:44 
сплюснутые же придумывали, нормальные люди так бы не сделали.

"Утверждён стандарт C++20"
Отправлено Онаним , 09-Сен-20 09:53 
Хипстеры добрались и до плюсов.

"Утверждён стандарт C++20"
Отправлено Кульпрогер хеловорлда , 07-Сен-20 11:08 
Полезно, одобряю

"Утверждён стандарт C++20"
Отправлено Иваня , 07-Сен-20 11:13 
То чувство, когда плюсы сложнее раста...😭

"Утверждён стандарт C++20"
Отправлено аноним12345 , 07-Сен-20 11:28 
Ждем, когда в теме появятся растоманы

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:55 
Так Раст в большинстве случаев не очень сложный
Но иногда бывают эпохальные лингвистические повороты, да. Впрочем, как и в любом языке

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:57 
Он не очень сложный. Он просто излишне сложный так где не надо.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 21:22 
всё имеет свою цену
заморочки раста с временами жизни переменных - плата на надёжность и отсутствие неопределённого поведения, без использования сборщиков мусора

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 23:03 
Управление памятью - вещь непростая сама по себе, и эта сложность обязательно где-то вылезет - либо в GC, либо в языковых конструкциях, либо в уязвимостях :-)

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 11:17 
Так, а где Networking?
Они его ещё с C++14 обещают (если не раньше), говорят что ещё чуть-чуть, всё почти готово, реализация уже есть в бусте/асио нужно только в стандарт прописать, добавим в следующем мажорном релизе, мамойклянусь! А воз и ныне там, в C++23 вообще про Networking ни слова.

"Утверждён стандарт C++20"
Отправлено Иваня , 07-Сен-20 11:34 
Я юзаю https://github.com/ValveSoftware/GameNetworkingSockets

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:01 
Так с подключением внешней зависимостью какого-нибудь буста или закидыванием в дерево какого-нибудь асио проблем нет.
Проблема в том что в крестах ВООБЩЕ нет никакого кросплатформенного способа взаимодействия с сокетами искаропки. И не будет минимум до 2026 года, ибо в C++20 их перенесли на хз когда, а судя по тому что в C++23 это даже не планируют обсуждать то только к C++26 может и запилят.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:36 
Он зависит от Executors а с ними не сложилось. Добавят в с++ 23

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:37 
Модули то ждали к С++17 а выкатили только к с++20

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:14 
Ну так функции Бесселя гораздо чаще встречаются в жизни простых программистов чем необходимость работы с сетью. Сарказм выкл.

"Утверждён стандарт C++20"
Отправлено Z , 07-Сен-20 11:45 
А потом эти люди еще удивляются почему так стремительно растёт популярно GO

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:19 
и PHP

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:31 
Не, ну вот из крайности в крайность не надо. Да, современный С++ перегружен и переусложнен до предела. Но и Go слишком прост, чтобы на нем делать серьезные проекты. Быстро накидать прототип или что-то несложное - да, можно. Но что-то сложнее нескольких файлов и нескольких сотен LoC - уже начинаются проблемы с построением архитектуры и чистотой кода. Куча дублирования, пустые интерфейсы, которые пускают по звизде всю систему типов... Кошмар, одним словом.
Я для себя выбрал 4 языка, с которыми мне приятно работать: Common Lisp, Erlang, Rust, C.
И с которыми я никогда больше не буду работать без критической необходимости: Go, C++, C#, Java.
Посматриваю еще в сторону Standard ML, Haskell и Ada. Последнюю щупал, вроде ничего так, но как-то слишком многословно и куча заморочек, так и не определился, нравится или нет.

"Утверждён стандарт C++20"
Отправлено h65eyh5 , 07-Сен-20 13:01 
>слишком многословно

Язык для оборонки создавался же. Многословность, чтобы меньше было возможности не заметить мелкую опечатку. Что скажете про Dlang и Nim?


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:40 
Не пробовал, не знаю.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 15:37 
>> Но и Go слишком прост, чтобы на нем делать серьезные проекты. Быстро накидать прототип или что-то несложное - да, можно. Но что-то сложнее нескольких файлов и нескольких сотен LoC - уже начинаются проблемы с построением архитектуры и чистотой кода.

Так и скажи, что у тебя руки растут не с того места.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 18:08 
Ага, на нормальных языках из того места, а на Go внезапно не из того. Ну да, ну да, конечно, проблема во мне, а в Гугле говно создать не могут по определению.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 18:39 
Профи отличается от начинающего умением использовать любой инструмент. Лет через двадцать кодинга на самых разных ЯП ты это осознаешь. По ходу и заметишь, что именно этот навык наиболее востребован и наиболее хорошо оплачивается. Капризульки и поиск "крутых ЯП для крутых проектов и крутых перцев"-это характерно для начинающих.

ЗЫ конкретно про Go, его увлечённо взяли в оборот в крупнейших компаниях, включая РФ-вских, и пилят на нём проекты уровня bigdata платформ, тихо и молча.


"Утверждён стандарт C++20"
Отправлено anonymousangler , 07-Сен-20 20:08 
Это скорее отлияает тех, кто будет жрать сам знаешь что за деньги, от всех остальных. Не более.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:46 
> именно этот навык наиболее востребован и наиболее хорошо оплачивается

Неа. Наиболее хорошо оплачивается умение писать качественный код, а для этого надо хорошо знать язык(и) проекта (один-два, максимум три), а не нахвататься всего по верхам.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 21:54 
>>умение писать качественный код

Не повторяй то, что сказано выше фразой "умением использовать любой инструмент"

PS Новичка сразу выдаёт утверждение, что освоить можно только два-три языка. Проработавшие пару десяток лет успевают не только освоить десятки ЯП-ов, но и забыть некоторые из них за ненадобностью.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 22:46 
> Проработавшие пару десяток лет успевают не только освоить десятки ЯП-ов, но и забыть некоторые из них за ненадобностью

Ну что ж, давай перечислим языки, которые я освоил (и многие забыл) за (в общем случае, потому что начинал еще в школе на Электронике-БК или Корветах, уже не помню) 18 лет программирования.

школа, 9-10 классы, УПК:
Basic (не помню какой, как раз на Электрониках/Корветах был), TurboPascal

далее универ, 5 лет, околопрограммистская специальность САПР:
Assembler X86, AVR Assembler, C, C++, VBA, VBS, JS, Delphi (да, он считается языком), C#

работа, 11 лет уже как:
продолжал Delphi, C++, C#, чуть-чуть JS. Новые: PHP, Erlang, Go, Common Lisp, Rust.

Bash-скрипты и batch-файлы не считаю.

Из них продолжаю активно использовать Erlang (по работе). Есть планы по Rust'у, C и, возможно, Лиспу (для себя).

И вот после 2 лет разработки на Go могу заявить, что он - говно.


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 10:38 
> Новичка сразу выдаёт утверждение, что освоить можно только два-три языка. Проработавшие пару десяток лет успевают не только освоить десятки ЯП-ов, но и забыть некоторые из них за ненадобностью.

Не повторяй то, что сказано выше фразой "нахвататься по верхам". Можно уметь кодить на нескольких десятках языков, но при этом на всех них допускать детские ошибки или просто плодить крайне неоптимальный код. У меня и в мыслях не было с этим спорить. Но чтобы писать качественный код, надо потратить несколько лет только на разработку на одном языке (десяток лет опыта разработки вообще — это само собой разумеется). В случае такого сложного языка, как современный C++, нужно разрабатывать на нём, как минимум, последних лет 5. Именно последних, чтобы быть в курсе актуальных стандартов. И да, под разработкой я понимаю не просто написание кода, но и чтение литературы, посещение конференций и т. п., чтобы не отставать от жизни. И как-то вот получается, что больше 2-3 языков на должном уровне поддерживать очень трудно. Ну если только язык не стагнирует и не является сам по себе предельно упрощённым.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 22:49 
> конкретно про Go, его увлечённо взяли в оборот в крупнейших компаниях, включая РФ-вских, и пилят на нём проекты уровня bigdata платформ, тихо и молча.

да бэкенды на нем пилят в основном, поскольку вся РФ - один большой аутсорсер.


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 22:54 
> Профи отличается от начинающего умением использовать любой инструмент.

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


"Утверждён стандарт C++20"
Отправлено Myyx , 09-Сен-20 10:20 
ок ос на брайнфаке запилил

"Утверждён стандарт C++20"
Отправлено Анонимусс , 10-Сен-20 05:46 
Согласен, неожиданно для себя понял,ч то мне, по большому счету всё равно на чем писать, а разобраться в особенностях можно из за пару недель...

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:16 
Можно, конечно, привыкнуть и к говну, но зачем ?!

"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:15 
Go тоже та еще гадость.

"Утверждён стандарт C++20"
Отправлено Аноним5487547 , 07-Сен-20 12:06 
Никак не дождусь автозаполнения аргументов, когда функцию объявленную как:
foo(int a, int b = 10, int c = 20);
можно использовать:
foo(1, , 5); // foo(1, 10, 5);
foo(1, int, 5); // если есть перегруза вроде foo(int a, double b = 15, int c = 20);
Неужели так сложно?

"Утверждён стандарт C++20"
Отправлено Анонимчик , 07-Сен-20 12:09 
до сих пор стараюсь не писать на с++ из-за отсутствии такой важной возможности

"Утверждён стандарт C++20"
Отправлено Аноним5487547 , 07-Сен-20 15:19 
Увы, но заменить c++ нечем. Если те же задачи решать на C то запутанность кода превысит запутанность синтаксиса современного c++

"Утверждён стандарт C++20"
Отправлено Lex , 07-Сен-20 19:21 
Если на сях писать аки на плюсах - тогда да.

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


"Утверждён стандарт C++20"
Отправлено Аноним5487547 , 07-Сен-20 20:23 
Хорошо продуманная абстракция как раз наоборот упрощает дизайн кода. Как пример обычная операция над объектом:
//в C++
obj.func(arg1, arg2);
//в C
objType_func(ptr_to_obg, arg1, arg2);

"Утверждён стандарт C++20"
Отправлено draw1 , 08-Сен-20 04:06 
> Хорошо продуманная абстракция как раз наоборот упрощает дизайн кода. Как пример обычная
> операция над объектом:
> //в C++
> obj.func(arg1, arg2);
> //в C
> objType_func(ptr_to_obg, arg1, arg2);

Написать короче, да. Выглядит красивей.
Вот только читая такой код ты сначала должен посмотреть что такое obj, просмотреть иерархию наследования, посмотреть все вариации func со всеми типами аргументов, посмотреть какой тип у аргументов, пройти по их иерархии наследования, попарить мозг если это какой-нибудь шаблон хитровывернутый ...и это только для того чтоб точно понять с чем именно идёт работа в данном конкретном месте - то есть это только подготовительный этап к чтению содержимого.

В Си-шном варианте, хоть и более многословном, но по прототипу функции уже сразу понятно на что надо смотреть. Да, писать больше, а с вариациями аргументов и структур - намного больше (но это ж как раз про дизайн, чтоб с самого начала не плодить лишнего "just because we can").

Более классический пример:

y = x + 5;

В Си-шном коде можно вообще никуда не смотреть - сразу понятно, в целом, что происходит.
Эта же строчка на плюсах может быть вообще чем угодно (хорошо хоть пятёрка пока не может быть переопределена). Для написания - это может быть большим достоинством (краткость, единообразие, красивость и всё такое), но для чтения/понимания...


"Утверждён стандарт C++20"
Отправлено Аноним5487547 , 09-Сен-20 12:59 
Это если первый заглянул в код тогда да. Но поработав какое-то время с проектом и познакомившись со всей иерархией классов, получаешь буст к скорости написания/понимания именно благодаря лаконичности и естественности ООП кода.

"Утверждён стандарт C++20"
Отправлено Lex , 08-Сен-20 08:23 

>> Если на сях писать аки на плюсах - тогда да.
>> Если же кодить нормально, без этих бесконечных нагромождений псевдоабстракций...
> Хорошо продуманная абстракция как раз наоборот упрощает дизайн кода. Как пример обычная
> операция над объектом:
> //в C++
> obj.func(arg1, arg2);
> //в C
> objType_func(ptr_to_obg, arg1, arg2);

Это ведь именно попытка писания на Сях аки на плюсах, т.е к нагромождению ООП и связанных с ним тонн абстракций добавляется еще и попытка "эмуляции" ООП на языке, его не поддерживающем.
Конкретно в вашем примере - работа с объектом в ООП-стиле, на языке, который его поддерживает и на языке, котором добавляется еще один слой абстракций чисто для эмуляции ООП или к слову о прокидывании в функцию подобия this..
Само-собой подобный подход вдвойне убог.


"Утверждён стандарт C++20"
Отправлено Аноним5487547 , 09-Сен-20 12:59 
> попытка "эмуляции" ООП на языке, его не поддерживающем.

так ведь именно это и есть стиль типичного C фреймворка. Вот пример из GTK:
void gtk_window_set_default_geometry (GtkWindow *window, gint width, gint height);


"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:36 
Оу, все фигня. Они добавили reflection в TS А значит можно ожитать их реализации в gcc и clang. А там и метаклассы и генераторы кода...

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 12:55 
Ну все Раст больше не нужен

"Утверждён стандарт C++20"
Отправлено anonymousangler , 07-Сен-20 20:11 
Насмешил (х

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 01:39 
Кто ты и твой коммент без раста ?

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 13:46 
Как раз из-за C++20 нужен ещё сильнее ;)

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 13:54 
Комитет по раздувательству С++ работает, не покладая рук.

"Утверждён стандарт C++20"
Отправлено vitalif , 07-Сен-20 14:00 
Так, стопэ! А корутины-то допилили?

// Всё остальное в основном накур - да


"Утверждён стандарт C++20"
Отправлено fsb4000 , 07-Сен-20 14:11 
Допилили. И уже поддерживается в текущих компиляторах.

Смотри табличку: https://en.cppreference.com/w/cpp/compiler_support


"Утверждён стандарт C++20"
Отправлено vitalif , 07-Сен-20 15:12 
> Допилили. И уже поддерживается в текущих компиляторах.
> Смотри табличку: https://en.cppreference.com/w/cpp/compiler_support

О, точно, в Gcc допилили. В LLVM не до конца. Маладцы! Это по-моему главная киллерфича C++20. Единственно надо посмотреть какой оверхед от них будет


"Утверждён стандарт C++20"
Отправлено anonymous , 07-Сен-20 15:20 
Не допилили, оно в экспериментальном режиме и требует отдельный флаг.

"Утверждён стандарт C++20"
Отправлено fsb4000 , 07-Сен-20 16:13 
В Visual Studio пока требуется отдельный флаг: /await

Но с версии 16.8(пока доступна лишь Preview) будет работать уже без флага.


"Утверждён стандарт C++20"
Отправлено Вкусная водочка , 07-Сен-20 14:22 
Кто хочет выучить современные плюсы, следуйте на learncpp.com 👈

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 14:38 
Общаясь с плюсовиками, понял примерно то что народ пишет на одиннадцатых и посматривает на 14.
Эти все нововведения нужны наверное 10% разрабов.
А новые версии плюсов выпускают что бы выпускать.

Кстати, вы знали что плюсы должны быть совместимы с совершенно чудовищными вычислительными машинам с недвоичной логикой.

В результате хорошие дополнения не вводятся из-за ужасного легаси языка.

Теперь понятно почему стрельнули GOLANG и RUST


"Утверждён стандарт C++20"
Отправлено anonymous , 07-Сен-20 15:10 
https://www.reddit.com/r/cpp/comments/ik7bwt/which_c_version.../

знакомые плюсовики выборка очень плохая.

И по вашему новые версии выпускают потому что людям скучно, а не то что они пытаются решить какие-то проблемы?


"Утверждён стандарт C++20"
Отправлено Tita_M , 07-Сен-20 15:15 
>а не то что они пытаются решить какие-то проблемы?

Ага. Проблемы порождённые предыдущими решениями проблем.


"Утверждён стандарт C++20"
Отправлено vitalif , 07-Сен-20 15:13 
> В результате хорошие дополнения не вводятся из-за ужасного легаси языка.

Вводяцца, лямбды вон ввелись, теперь ещё async/await. Круто же)

> Теперь понятно почему стрельнули GOLANG и RUST

...но и это конечно да, маразма там тоже хватает.


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 23:05 
>Общаясь с плюсовиками, понял

Это та же логика, что "среди моих знакомых никто не голосовал за <кандидата>, значит, за него никто не голосовал".


"Утверждён стандарт C++20"
Отправлено SJW , 09-Сен-20 11:51 
> плюсы должны быть совместимы с совершенно чудовищными вычислительными машинам с недвоичной логикой.

There are more than two digits!


"Утверждён стандарт C++20"
Отправлено Neon , 16-Мрт-22 02:23 
Все верно. Все последующие нововведения нужны лишь самим разработчикам стандартов. Такой междусобойчик чисто для себя. Те же функции Бесселя, например. Нужны каждому простому программисту на практике. А вот работа с сетью - нет. Сарказм выкл. За шаблоны, вообще, нужно убивать. Write only код. Спустя некоторое время даже сам автор более менее нетривиального шаблона перестает понимать, что там делается. А уж отлаживать это чудо можно желать лишь врагу, особо злостному.)))

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 15:11 
Ну как, для квантовых вычислений-то С++ уже готов?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 15:47 
Тут всё зависит от middle-end компилятора. Как доработают middle-end, так сразу для всех языков компилятора и заработает, в том числе и для Rust

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:56 
Пытаюсь представить себе квантовые указатели :)

"Утверждён стандарт C++20"
Отправлено Lex , 07-Сен-20 19:27 
Просто достаёшь указатель где-то за пределами массива, вот тебе и квантовый указатель готов.

С некоторым шансом, обращение по адресу пройдёт даже без вылета.


"Утверждён стандарт C++20"
Отправлено Ананоним , 08-Сен-20 02:32 
Ага, туфту представить невозможно! Но он привлекателен.

"Утверждён стандарт C++20"
Отправлено nich , 14-Сен-20 03:38 
Почти.  Как только UB расширят волновой функцией, будет точно готов.

"Утверждён стандарт C++20"
Отправлено all_glory_to_the_hypnotoad , 07-Сен-20 15:47 
Аффтар новости, ты вообще хоть немного понимаешь что переводишь?

> Возможность лямбда-захвата выражений "*this".

this всегда можно было захватывать, сделали устаревшим автоматический захват this при использовании [=]

> Классам разрешено использование параметры шаблона без типа.

В качестве параметра шаблона-значения можно использовать классы для типа, раньше можно было только POD типы. Из-за этого нельзя было делать строковые литералы параметрами шаблонов.

> Возможность использования диапазонов для инициализации значений переменной в цикле "for"

Возможность указывать в конструкциях for(...) локальные переменные, которые дальше можно использовать в range части. К возможности использовать диапазоны это вообще не имеет никакого отношения, делать аналоги питоновского range() в range-based for можно было начиная с c++11.

> Атрибут "[[no_unique_address]]" при котором переменные без данных не занимают места.

Вообще ничего близкого по смыслу, полная чушь.

> Поддержка быстрых (immediate) функций, которые могут работать только с константами.

Поддержка функций, которые могут использоваться только на этапе компиляции.


Это совсем адовые ляпы, в половине пунктов вообще не понятно о каком нововведении пишешь.


"Утверждён стандарт C++20"
Отправлено Michael Shigorin , 07-Сен-20 19:06 
Там под новостью справа есть ссылочка такая: "исправить".
Спасибо за попытку, но лучше патчи сразу туда и слать.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:37 
Благодарю, а я то думал, что туплю при чтении (давно не юзал плюсы, очень давно).

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:58 
Это именно что захват *this, комментатор, ты хоть понимаешь что комментируешь?)
читай док: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p001...

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 16:54 
та ну нафик... на ассемблере писать стало проще.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:19 
В GCC поддерживают драфты или релизные версии?

Если драфты, то насколько они уверены в совпадении и откуда у них такая информация?

Если релизы, то где скачать документацию по этим версиям языка?


"Утверждён стандарт C++20"
Отправлено aa , 08-Сен-20 06:40 
https://isocpp.org/std/the-standard
дальше purchase нужную версию, вводишь данные кредитки и вот оно счасьте в виде пдф

"Утверждён стандарт C++20"
Отправлено user , 08-Сен-20 13:05 
Одна из причин перейти на Rust.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 11:55 
Отсутствие стандарта как такового, единственная реализация компилятора и стандартной библиотеки?

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 11:59 
в случае, когда за этот стандарт надо заплатить туеву хучу бабла, можно считать, что его нет.

"Утверждён стандарт C++20"
Отправлено Andrey , 09-Сен-20 17:51 
Платный доступ к стандартам - устоявшаяся практика, и у ISO, и у ГОСТ.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 18:15 
Порочная практика, спешу заметить. Это во-первых.
А во-вторых - не по таким же ценам! Ну чего там такого написано на 16.5 тыс. руб.? Зачем нужны стандарты, если для того, чтобы их прочитать даже в электронном виде надо платить туеву хучу денег? Ну и продавали бы печатные копии, а электронные сделали бы общедоступными.
Кстати, все необходимые мне ГОСТы я находил в свободном доступе. А вот ISOшные стандарты - не все.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 23:32 
Тебе и незачем за него платить. Он для авторов компиляторов предназначен, а не для тебя.

"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 04:21 
А, ну то есть обычному пользователю языка, не автору компилятора, стандарт читать необязательно. Достаточно талмуда Страуструпа. Ню-ню.

"Утверждён стандарт C++20"
Отправлено анон , 10-Сен-20 07:55 
Драфт бесплатен, качай-читай - он и нужен программистам и "обычным пользователям языка", а платный, с деталями - разрабам компиляторов.

"Утверждён стандарт C++20"
Отправлено Аноним , 11-Сен-20 17:58 
Обычному пользователю языка за глаза хватит справочника с цплюсплюс.ком или цппреференс.ком. Для начинающих, конечно, ещё и хороший учебник нужен, но им-то стандарт точно не является.

"Утверждён стандарт C++20"
Отправлено Alex , 11-Сен-20 13:04 
Для тех кто не хочет платить, всегда есть последний пред-релизный драфт, который может отличаться от итогового стандарта только неправильной расстановкой запятых.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 11:57 
за 16 508 рублей? Спасибо, не надо нам такого счастья.

"Утверждён стандарт C++20"
Отправлено aa , 09-Сен-20 15:27 
Можно пользоваться драфтом - он бесплатен, разница лишь, что нельзя официально сказать "в соответсвии со стандартом".
Да и 200 баксов - это не так уж много за формальное описание языка - люди всё-таки работали.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 16:36 
За многотомники по "альтернативной истории" тоже платить? Аффтар строчил, понимаешь ли.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 16:41 
Да нет, многовато, я за ипотеку плачу 20, а тут талмуд - 16. Пускай сами его читают. 1000 рублей - нормально.
Но это ладно. Я вот видел исошный же стандарт на 30 (30, Карл!) страниц, который ISO же продает за 11 000 рублей. Это ли не верх о*уения зажравшихся капитализдов?

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 19:43 
на гитхабе лежат исходники стандарта.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:27 
Ненужно! Ведь уже есть rust !

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:28 
Раст уже деприкейтед, команду разогнали. Пора переходить на С++

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 13:44 
Что за глупость, Раст наконец свой фонд организовывает

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 16:16 
Уже нет - проехали. Года 4 назад ещё можно было гадать взлетит Rust или нет. А теперь it's here to stay. Я понимаю что многих здесь он раздражает - но жизнь вообще жестокая штука...

"Утверждён стандарт C++20"
Отправлено trdd , 08-Сен-20 18:46 
В том то и дело что в раст почти ничего нет.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 15:24 
Но при этом есть все необходимое. А вот в плюсах что-то уж очень много всего по сравнению с 98 и 03 стандартами. Слишком много.

"Утверждён стандарт C++20"
Отправлено СССР , 10-Сен-20 00:39 
ну не используй то что тебе не нужно  )

"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 04:19 
Ну вот не нужен мне С++ - я его и не использую, есть языки попроще и поинтереснее))

"Утверждён стандарт C++20"
Отправлено СССР , 10-Сен-20 07:00 
да и вообще жизнь без компьютера поинтереснее и попроще )).
А вообще это лично вами, в силу определенных причин, было принято решение поискать ченть попроще, в результате оно и оказалось интереснее что хоть какието вещи лично вы можете сваять ).
Что не прав? )

"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 09:38 
Нет, не правы. Это решение приняли за меня, предложив работу на Erlang. А потом я уже расхотел возвращаться на плюсы, во-первых, потому что понял убогость и их и ООП, а во-вторых, потому что не хотел осваивать новый стандарт.

"Утверждён стандарт C++20"
Отправлено СССР , 10-Сен-20 23:12 
ну если вам платят за другой язык то почему же и нет ) но это же совсем не то когда молодеж начинает хайповать ).
А в плане убогости в ООП в с++, тут вы не правы )

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 17:37 
Боже ш мой, сколько бреда!!! Неужели это кому-нибудь нужно и кто-то пользуется этим?! В C++11/14 ещё были полезные нововведения, но в 17/20 - безсмыслица какая-то уже. В рефлексии как не было так и нет, токмо Qt-м и спасаемся.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 21:16 
Для рефлексии в этом стандарте TS сделали, надеюсь в С++23 уже будет (а в компиляторах еще раньше).

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 00:43 
> в 17/20 - безсмыслица какая-то уже

Ну почему же. В С++17 среди прочего ввели std::filesystem. А то всё приходилось С-функциями каталоги обходить. std:optional, std::string_view - тоже полезные штуки. Copy elision - тоже хорошо. В С++20 тоже много хорошего.


"Утверждён стандарт C++20"
Отправлено Рева RarogCmex Денис , 07-Сен-20 18:25 
Выбирая между C++ и Rust стоит выбрать Haskell.

"Утверждён стандарт C++20"
Отправлено Вкусная водочка , 07-Сен-20 19:17 
А как же JabbaScript Everywhere? 🌝

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 21:42 
сплюснутые и ржавые начали гонку сложности к невозможности изучения языка.

"Утверждён стандарт C++20"
Отправлено Sgt. Gram , 11-Сен-20 18:30 
Используя деепричастный оборот, стоит обособлять его запятыми.

"Утверждён стандарт C++20"
Отправлено Ананоним , 07-Сен-20 19:22 
Кажется приближается смерть плюсов от ожирения. Язык C выглядит всё боле привлекательным из-за относительной своей простоты.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:26 
Ассемблер вот где все просто. Зачем все эти абстракции когда есть посконный гоуту

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 01:37 
Нету там никаких гоуту, goto: есть в сях

"Утверждён стандарт C++20"
Отправлено aa , 08-Сен-20 06:42 
тоже мне проблема
#define goto JMP

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 19:54 
Ну что, теперь можно написать еще 100500 библиотек для работы со строками?

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 20:15 
Предсмертные конвульсии.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 21:40 
Сколько высокомерных ниасиляторов в комментах, просто ужас

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 22:31 
Зачем осиливать^W насиловать труп?

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 20:19 
Что осиливать, а что нет - каждый решает сам. Но высокомерно выпячивать своё неосиляторство - как-то тупо. Если чего-то не знаешь - ну нормально, просто сиди себе тихо и скромно со своим незнанием. Но высокомерные разговоры в духе "я этого не понимаю, значит это говно" - показывают тупость автора изречения, а не недостатки предмета обсуждения.

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 22:14 
Как минимум значительно больше представителей мазохизма

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 22:38 
Концепты конечно мощнее, чем type constraints в свифте или шарпе, но зачем так усложнять все таки...

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 23:02 
Самый читаемый код на pascal

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 23:14 
Нет. На J.

"Утверждён стандарт C++20"
Отправлено Аноним , 07-Сен-20 23:26 
Ты уверен?

result =. name1 verb2 5


"Утверждён стандарт C++20"
Отправлено anonimous , 08-Сен-20 01:29 
Там тоже уже подзапутали. Но где то до уровня ранних плюсов, которые еще можно читать было

https://castle-engine.io/modern_pascal_introduction_russian....


"Утверждён стандарт C++20"
Отправлено Неа , 07-Сен-20 23:43 
Нахер надо это все. Все это в других языках делается проще и так же быстро работает. А если надо ещё быстрее, то C или C++ 11.

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 13:43 
Какие, например?
Языки проще обычно заметно тормознее

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 21:40 
"заметно" - это сколько долей процента?

"Утверждён стандарт C++20"
Отправлено Аноним , 19-Сен-20 05:10 
Ну сравни скорость C++ и Питона

"Утверждён стандарт C++20"
Отправлено None , 08-Сен-20 01:21 
Ничего себе, модули завезли. Эдак они и от препроцессора вовсе откажутся.

"Утверждён стандарт C++20"
Отправлено Кэп , 08-Сен-20 08:58 
Ага, а потом вообще морфируют в сишарп

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 21:38 
скоро до уровня паскаля подтянутся :)

"Утверждён стандарт C++20"
Отправлено draw1 , 08-Сен-20 02:45 
> Поддержка синтаксиса инициализации в стиле Си...

Да неужели наконец-то плюсовики смогут компилировать нормальный Си-шный код? Хотел сказать "не прошло и 20-ти лет"... Но ведь прошло... В Си такая инициализация есть с С99...

Лень смотреть, а Си-шную аналогичную инициализацию массивов и тоже поддерживает?


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 12:49 
Не смогут. Инициализация в "стиле С" с С несовместима. Там свой синтаксис.


"Утверждён стандарт C++20"
Отправлено Андрей , 08-Сен-20 14:23 
срр для срр
уже сделали бы нормальный язык, без накруток. в компиляторе ещё возможно искать ошибки?)
даёшь dlang без gc!

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 16:09 
Си плюс-плюсники зашёл тут к вам, растаманы в вашем треде успели посрать?

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 22:11 
Все задачи должны решаться в едином стиле. Но это совсем не про C++, в котором есть шаблоны, constexpr, теперь уже концепции, и я боюсь представить, какая же будет интроспекция... С каждым стандартом в язык добавляются новые сущности с новым синтаксисом. Никакого единообразия. Из-за наследия комитет воротит костыли, которые в свою очередь заставляют воротить новые костыли. Такое впихивание не впихиваемого уродует язык. Уже сейчас на освоение языка нужны годы. А сколько ошибок будет допущено при разработке сложно даже представить. В масштабах мира это огромные потери человекочасов. И только из-за того, что нужно сохранять совместимость. Супер аргумент. Все радуются новому стандарту. Но с ним С++ стал только уродливее, и фактически катится в тупик.

"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 00:29 
> Из-за наследия комитет воротит костыли, которые в свою очередь заставляют воротить новые костыли. Такое впихивание не впихиваемого уродует язык.

Что за ересь? Наоборот, синтаксис становится проще, понятнее и красивее.

С++03:


const std::vector<int>::const_iterator end = vec.end();
for (std::vector<int>::const_iterator it = vec.begin(); it != end; ++it) {
    int n = *it;
    ...
}

C++11:


for (int n: vec) {
    ...
}


"Утверждён стандарт C++20"
Отправлено Аноним , 09-Сен-20 13:12 
Первый вариант никуда же не делся! Теперь надо знать оба. Ничего проще не стало. Это притянутый за уши, но всё же как раз пример усложнения языка.

"Утверждён стандарт C++20"
Отправлено Leo90 , 09-Сен-20 17:21 
это к вопросу о том, что если можно сделать больше чем двумя способами, то усложнение. но я с таким не согласен. если что то можно написать и просто и сложно, это нормально. плохо когда нельзя просто.

к тому же в некотрых ситуация более трудный ситаксис имеет больше возможностей (например в цикле есть доступ к самому итератору в первом варианте). выбор дает больше возможностей и заставляет выбирать (думать то есть).


"Утверждён стандарт C++20"
Отправлено Аноним , 10-Сен-20 15:12 
> выбор дает больше возможностей и заставляет выбирать (думать то есть)

Теоретически да, но на практике обычно новый вариант очевидно лучше (проще, красивее, выразительнее) старого. Редкие случаи, когда не так - не делают погоды.


"Утверждён стандарт C++20"
Отправлено СССР , 10-Сен-20 00:50 
ну и что,  вот  я тоже люблю испльзовать патерны по старинке, тут вопрос привычки. С++ дают такую возможность. Я могу на С++ использовать структуры с функциями, получаем компактные объекты. Могу в кутях легко и просто использовать навороченные классы для работы с БД, 3д и тд.. Программист сам выбирает что он хочет - так и пишет. С++ это от си к абстракциям (да где то не с первого раза понимаемым конструкциям). С++ это свобода.

"Утверждён стандарт C++20"
Отправлено Ordu , 10-Сен-20 01:57 
> Но с ним С++ стал только уродливее, и фактически катится в тупик.

А у него выбора нет другого, кроме как катиться в тупик. Если забить на обратную совместимость, то получится история типа перехода python'а со 2 на 3 версию, только ещё хуже. Гораздо-гораздо хуже.


"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 22:26 
Главный вопрос. Почему стандарт до сих пор называется ISO/IEC 14882? 14/88! И в комитете по стандартизации одни белые гетеросексуальные мужики, никакого divesity. Куда смотрят SJW?

"Утверждён стандарт C++20"
Отправлено Аноним , 08-Сен-20 23:18 
Куда они так торопятся? И где нормальная литература по современным C++?

"Утверждён стандарт C++20"
Отправлено snmp agent , 08-Сен-20 23:29 
А чего в списке новшеств ranges не упомянуты?
https://www.modernescpp.com/index.php/c-20-the-ranges-library
Или я проглядел?