|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
Почему С++ отстой до 2020 года07.03.2016, 11:58. Показов 9297. Ответов 55
Метки нет (Все метки)
Это не холиварная тема, здесь мы не спорим, какой язык лучше!
Ну что, недавно собирался комитет стандартизации, который обсуждал будущее - С++17. И в итоге? Что же будет добавлено в столь долгожданный стандарт после релиза С++14, который был минорым и лишь доводил до ума фичи С++11? 1) Параллелизм (STL) 2) Файловая система 3) ... Вы думали, что будет еще что-то? Да нет, из фич, которые как-то заметно влияют на разработку, это все. Это все, Карл! Концепты - пфф, нам и так хорошо - родные и уродливые длинные сообщения об ошибках в шаблонах, а также безобразная магия enable_if в SFINAE, - чего еще желать? Диапазоны? Можно расслабиться, они без концептов не работают. И Слава Богу, а то пришлось бы осиливать столь сложную вещь! Модули? Ну ребят, у нас и так все быстро компилируется, особенно если буст подключить. Не зажируем ли? И да, cmake куда лучше пакетного менеджера! Конкурентность? Дык кто не пишет на низкоуровневых примитивах, тот неосилятор! Сети, корутины? Кого волнует, идите-ка вы на ...буст. Рефлексия, контракты? Да зачем? Без них куда проще жить, юзать нечитабельные либы и писать велосипеды! В общем, С++17 я бы точно не назвал мажорной версией стандарта, поскольку НЕ ВИЖУ, КАКИЕ РЕАЛЬНО НАСУЩНЫЕ ПРОБЛЕМЫ ОН РЕШАЕТ. А сколько шуму-то было после С++11/14! И это печально, потому что следующего шага после С++11 приходится ждать 10 лет, а конкуренты не дремлют. Почему так получилось? Ну потому что С++ слишком сложен, а поэтому добавление или исправление вещей, которые реально нужны и важны занимают слишком много времени и усилий. На рынке С++ по-прежнему будет скатываться в свои ниши - в ниши, где производительность критична. А С++ разработчики по-прежнему будут жить с С++ без удовольствия, частенько похаживая на сторону к другим языкам. У меня все. Если кто-то хочет меня дополнить, исправить, или просто выразить свое мнение и послать в дальние места - велкам!
1
|
|
| 07.03.2016, 11:58 | |
|
Ответы с готовыми решениями:
55
По введенному года с 1950 до 2020 вывести на экран название соответствующего названия года по восточному календарю (1 - мышь, 2 - бык, 3 - тигр, 4 - к
Гусеницы - отстой? |
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|||||||||||||||||||
| 08.03.2016, 23:02 | |||||||||||||||||||
|
Модуль - это гораздо больше, чем просто подключение статической библиотеки. По замыслу, модули должны содержать предварительно обработанный текст (нечто вроде precompiled headers, но в более удобной форме): готовые к использованию определения типов, шаблоны и всё такое прочее. То, во что компилятор сейчас снова и снова преобразует заголовочные файлы в каждой единице компиляции. Так что не надо тут рассказывать про прагму и выставлять её как какой-то "факт". Она вообще не имеет отношения к вопросу о модулях и препроцессоре. Во-вторых, факт того, что у языка есть серьёзные проблемы с развитием, очевиден. Достаточно посмотреть на список всего того, что обещали в C++17 и что туда не вошло. Добавлено через 10 минут Насчёт гигантского размаха не соглашусь, пока что всё ещё достаточно скромно и цивильно, пара-другая случаев. Однако тенденция (и, по-моему, тревожная тенденция) налицо.
3
|
|||||||||||||||||||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 08.03.2016, 23:14 | ||
|
http://www.open-std.org/jtc1/s... 0144r0.pdf хоть таких примеров там не приводится, но надеюсь можно будет и при передачи в функцию подобным образом раскрывать кортежи.
0
|
||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||
| 08.03.2016, 23:35 | ||
|
0
|
||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 08.03.2016, 23:51 | |
|
0
|
|
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|||||||
| 09.03.2016, 00:01 | |||||||
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||||||
| 09.03.2016, 00:06 | ||||||||||||||||||||||
|
какое это имеет значение на практике? принципиально, что выше вы заявили: "почему?" вы вообще в состоянии предоставить аргументированный ответ? ваше голословное "бла бла бла" как то не очень интересно. и когда я пишу "проиллюстрируйте", то я имею ввиду кодом. например здесь: http://rextester.com/l/cpp_online_compiler_gcc могу заранее вам сказать, что никаких проблем со своими личными begin/end в этой ситуации не будет. *сделал пометку в блокнотике* ну ок. создайте проект с предварительно скомпилированным заголовком. закидайте туда всяких заголовков, макросов, любой ботвы, и в конце впишите прагму. и о боже! оно работает! и макросы ему внезапно работать не мешают. факт. я просто привел вам пример "проблемы препроцессора". который наглядно иллюстрирует: такая проблема существовала всегда. но на практике как это это жить никому не мешает. и модулям палки в колеса не вставит. "из-за прямой работы с памятью, что позволяет писать эффективные..." но это - деццкий сад какой т. однако с чего вы взяли, что проблема именно с легаси? не нужно приписывать мне то, что я не сообщал. я писал: которое опирается на реальную ситуацию с языком D. язык D изначально задумывался, как прямой поток языка с++, в котором должны быть учтены недостатки предшественника. то бишь, "как с++, только более совершенный и продуманный". с точки зрения дизайна, язык D действительно неплох. однако его создатели совершили две фатальные ошибки: 1. во имя синтаксического сахара, пренебрегли священной коровой с++ - эффективностью. 2. и это уже фатально: пренебрегли обратной совместимостью с с++ какой изначально должна была бы быть целевая аудитория "улучшенного с++" ? очевидно жеж - программисты с++. но отсутствие обратной совместимости с языком с++ воспрепятствовало массовому исходу программистов на язык D. а отсутствие профита в плане перфоманса - сделало неочевидным сам мотив такого исхода. в результате язык D, при всей своей "улучшенности" оказался мертворожденным - невостребованным. это - объективный факт. а вот вам другой объективный факт: хитрый Страуструп понимал, что его клиенты - сишники. и специально так все подстроил, что бы максимально облегчить переход с сишки на плюсы. и вот вам результат - массовый исход в масштабе всей Индустрии. потому что первая часть предложения противоречит 3й. и вы честно говоря достали уже со своими побочными эффектами. да, именно так и нужно. я повторюсь: ещё ни один хейтер шаблонов не смог предложить хотя бы просто идею годной альтернативы. тогда я б согласился - да, пример есть. и этот пример можно было бы рассмотреть. но у вас я вижу только голословное бла бла бла. а не примеры. вы функциональное программирование "побочными эффектами" обозвали. это все, что я пока от вас в плане шаблонов смог добиться. а эти ваши модули - доступны для вижуал студийного компилятора. и что? вы так об это пишите, как будто бы у вас есть неопревержимые доказательства, что концепты, которые уже хз сколько времени доступны для пцц не могут создать исключительно из-за легаси. а модули, вестимо, конечно же из-за макросов? мне просто любопытно было: понимали ли вы на самом деле смысл собственного тезиса. или так просто - не подумавши брякнули.
1
|
||||||||||||||||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
| 10.03.2016, 22:02 [ТС] | |
|
hoggy, на следующем заседании будут решать, включать ли в С++17 constexpr if (наподобие static if).
Однако, в отличие от static if в D, у constexpr if есть ограничения: 1) только внутри block scope 2) только внутри шаблонов 3) всегда создает новый scope 4) нужно, чтобы все ветки до инстанцирования были компилябельны. Короче говоря, constexpr if позволяет в зависимости от условия не инстанцировать определенные ветки внутри шаблона. Я так помню, ты этого хотел? Или нет?
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 10.03.2016, 22:04 | |
|
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
| 10.03.2016, 22:09 [ТС] | |
|
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 10.03.2016, 22:19 | ||
|
1
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 10.03.2016, 22:21 | |||
|
зачем вообще нужен статик_иф ? что бы привычном для нубья, императивным образом выбирать какую ветку нужно компилировать. в теории, киллер-фича такого подхода в том, что это может быть альтернативной SFINAE. которая при всех возможностях СФИНЬИ, позволяет сохранить простоту и читабельность кода. но если статик_иф требует компилябельности нафик не упавших веток, значит оно лососнет по полной, ведь СФИНЬЯ для того и используется, что бы отсекать нежизнеспособные ветви. а значит, спецы по прежнему будут пользовать СФИНЬЮ. а всякие неосиляторы плакать, и жаловаццо:
0
|
|||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 10.03.2016, 22:43 | ||
|
Вообще сейчас в индустрии формируется такой стереотип что C++ - это только для "крутых". Но ведь дело не в том что для того чтобы эту дикую лошадь С++ объездить способности вдруг стали выше. Нет C++ в принципе каким был таким и остался. Просто особенно с появлением визуальной разработки появились более другие пони, которые могут объездить те кто С++ не осилил. Это не значит что задач под C++ стало меньше. Просто общее количество задач выросло.
Естественно комитет все это тормозит, хотя бы потому что на самом деле является отделом по сбыту фирмы Dinkumware, а введение таких штук в стандарт означает что кое что из STL придется почекрыжить за ненадобностью.
0
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||||
| 10.03.2016, 23:05 [ТС] | ||||||
|
hoggy, можешь привести пример, где по-прежнему нужно будет использовать sfinaе вместо концептов+constexpr if?
0
|
||||||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 11.03.2016, 00:31 | ||||||
|
Добавлено через 5 минут Добавлено через 18 минут
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||
| 11.03.2016, 00:32 | |||||||||||||||||
|
чем они принципиально отличаются от самой сфиньи? у них даже дизайн такой же забористый. давайте порассуждаем на примере реальной задачки:
далее, когда при помощи emplace-фабрики происходит захват ресурса, при этом срабатывает следующая логика: 1. U может быть либо T, либо наследником. 2. если у T доступен T::clone нужной сигнатуры, тогда обертка делегирует задачу по клонированию самому ресурсу:
type-erasure helper, который порождается в момент захвата ресурса и "запоминает" тип U и в этом случае задача по клонированию делегируется хэлперу:
например. задача на самом деле не сложная. решение у неё можно сказать классическое. и основывается оно на СФИНЬЕ. однако для нетренированных мазгов, это то, что в народе называют "шаблоно-магия". по идее годный static_if мог бы упразднить СФИНЬЮ, упростив тем самым конструкцию. но как здесь могут помочь эти дикие концепты, и костыльй статик_иф, который как я понял, вообще не умеет того, что требуется от СФИНЬИ, я хз.
1
|
|||||||||||||||||
|
31 / 31 / 6
Регистрация: 23.10.2014
Сообщений: 107
|
||||||||||||||||||||||
| 11.03.2016, 06:15 | ||||||||||||||||||||||
Ну а ваша задачка
3
|
||||||||||||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 11.03.2016, 09:07 | |||||||
|
с помощью сочетания концепта и статик_иф, можно выполнять проверку компилябельности любой ботвы?
0
|
|||||||
|
31 / 31 / 6
Регистрация: 23.10.2014
Сообщений: 107
|
|
| 11.03.2016, 09:42 | |
|
hoggy, не. Ботва должна быть синтаксически валидна.
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 11.03.2016, 13:09 [ТС] | ||
|
Только что уронил gcc концептами (internal compiler error)
![]()
0
|
||
|
31 / 31 / 6
Регистрация: 23.10.2014
Сообщений: 107
|
|||
| 11.03.2016, 15:11 | |||
|
Ну, если по тупому и в лоб, специализируя сам wrapper<T>, то как-то так http://melpon.org/wandbox/perm... xqxmJszpK5. Тогда constexpr if нафиг не сдался, и отличается оно от плясок с enable_if, собственно, отсутсвием enable_if.
1
|
|||
| 11.03.2016, 15:11 | |
|
Помогаю со студенческими работами здесь
40
КВН - полный отстой? Круто это либо отстой? Ваш язык программирования - отстой Программа вычисления високосного года, сезона года по месяцу, количеству дней от начала года Обожаю фреймворк Qt, а продукция Microsoft - отстой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|