|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
Почему С++ отстой до 2020 года07.03.2016, 11:58. Показов 9632. Ответов 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 / 1575 / 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 / 1575 / 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 / 1575 / 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 - отстой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|