|
7 / 6 / 1
Регистрация: 29.10.2021
Сообщений: 14
|
|||||||||||||||||||||||||||||||
Что бы вы изменили в дизайне c++?29.10.2021, 17:52. Показов 4169. Ответов 66
Тема ни о чём, просто напишите что думаете или мечтаете
Я очень люблю c++, альтернатив ему никаких и близко не вижу. И вот задумался, а что если...? У каждого программиста есть мечта создать свой собственный язык программирования с пасьянсом и барышнями, не так ли? Кажется, язык моей мечты очень близок к с++, но, как мне кажется, плюсики обладают некоторыми минусиками. Если бы вы могли переделать что-либо в дизайне с++ (не оглядываясь на обратную совместимость и прочее такое, просто с корнями перелопатить всё), то что бы вы изменили? А какие новые возможности бы добавили? (сборщик мусора сразу в мусорку) Заранее извиняюсь за весь бред ниже Вот некоторые мои предложения. Что думаете? В чём я обделался? 0: Отказаться от совместимости с Сиии 1: Перемещение и копирование, классы и структуры Вам не кажется, что семантика перемещения, все эти бесконечные конструкторы... дрянь? Вам не кажется странным, что классы и структуры - по факту одно и то же? Все объекты будут по умолчанию перемещаться, а точнее, просто тривиально копироваться с помощью memcpy(). Вместо конструкторов копирования будут вызываться явные методы (например object.clone()) Классы и структуры будут отличаться по своему поведению. Структура не изменит своего настоящего поведения. Структура переместилась в новое место - старая структура никуда не делась и продолжила свою работу. Позже для неё вызвался деструктор. По факту, для каждой копии вызывается деструктор. То есть на один конструктор несколько деструкторов.
После перемещения класс забывается. Всё, его уже не существует и для него ничего не вызывается. Это будет жестко контролироваться компилятором.
2: Приведения типов Все неявные приведения типов будут запрещены. Никаких if ((int)x) Оставить лишь один приведения - оператор as как заменитель static_cast + каст указателей, например
Вместо dynamic_cast была бы функция стандартной библиотеки, типа isInstanceOf<T>(T* object)->bool 3: встроенные типы как объекты Разве не круто написать...?
У меня просто вопрос, возможно ли их вообще сделать в компилируемом языке типа c++? Ведь для их использования нужно каждый раз компилировать всю программу целиком. Тогда о компиляции по отдельным единицам можно забыть и её время вырастет до небес? А возможно ли встраивать информацию о них в уже скомпилированные единицы? Как с этим справляется шарп? 5: Char бесполезен Зачем делать отдельный тип для символов (да ещё городить огород из всяких char16_t char32_t), если можно использовать целые числа? А строки просто обернуть в класс string, который по факту vector<uint8_t> 6: ++ -- Ну...
++ можно ставить только справа от переменной, и означает он += 1. Всё. Не надо нам никаких "Ну он увеличивает, потом возвращает, а этот возвращает, потом увеличивает" Аналогично -- 7: Указатели Я бы вообще убрал чистые указатели. Есть ссылки, есть unique/shared. Для особых случаев можно в стандартной библиотеке добавить раздел для отстрелов ног, включить туда функции работы с памятью напрямую (но вместо указателей адреса size_t) Достаточно 8: Я хочу сахара Кортежи не через зад, а с именованными параметрами
Именованные параметры функций (если у функции миллиард необязательных параметров, а тебе нужно установить лишь последний из них) Геттеры и сеттеры. Вместо функции int getX() {... будет свойство int get X() {... Добавлено через 9 минут Я совсем забыл.. 9: Автовывод операторов Перегрузили + - автоматически перегрузился += Перегрулили == - автоматически перегрузился != Перегрузили < и == - автоматически перегрузился <= Почему нет? Добавлено через 1 минуту PS Ну а шаблоны - это вообще длиннющий разговор, достойный отдельной темы
0
|
|||||||||||||||||||||||||||||||
| 29.10.2021, 17:52 | |
|
Ответы с готовыми решениями:
66
Что бы вы изменили? Что бы вы изменили в конфигурации этого ПК! Что нужно поменять в дизайне сайта |
|
7 / 6 / 1
Регистрация: 29.10.2021
Сообщений: 14
|
|
| 31.10.2021, 14:11 [ТС] | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 02.11.2021, 02:34 | |||
a plus bв таком случае, человек без знания языка сможет понять, что что-то с чем-то складывается. но вариант: a + b лично мне нравится больше.в одной из своих книг Страуструп писал, что фундаментальной основой его языка является идея демократических свобод. язык предоставляет программистам свободу самовыражения. Страуструп считает, что во многом, благодаря этой фундаментальной особенности, язык и стал популярным. -------------- по теме: я всё жду, когда ж в язык наконец-то добавят цивилизованную статическую рефлексию. ещё хочется, что бы узаконили дебажный стафф. например: что бы можно было кроссплатформенно, без сложных приседаний получать стек вызовов. в случае всякого рода сегфолдов, эксепшенов, и тп. что бы сигналы стабильно поддерживались windows/posix одинаково, и тп. ещё хочется, что бы узаконили межпроцессовое взаимодействие. что бы можно было цивилизованно запускать процессы, и пробрасывать между ними связи. что бы можно было разрабатывать кроссплатфоременные сервисы. (boost::interprocess мне не нра) ещё хочется, что бы узаконили сетевую подсистему (boost::asio мне не нра)
2
|
|||
|
147 / 135 / 50
Регистрация: 14.05.2021
Сообщений: 642
|
|||||||||||
| 02.11.2021, 12:49 | |||||||||||
Но некогда было об этом думать, нужно было показать, какой ты крутой, что вместо обычного метода/функции можешь сделать вывод переопределением оператора.
1
|
|||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 02.11.2021, 20:49 | ||||
|
ты выдаёшь собственные когнитивные трудности за проблему языка. на самом же деле это - только твоя проблема: и многим нравится. Страуструп изначально и целенаправленно проектировал тогдашний с++ для тогдашних сишников, с учетом их тогдашних проблем. Страуструп считает, что обратная совместимость - необходимость, которая была продиктована реалиями того времени. нужно было обеспечить максимально безболезненный переход сишников на новый язык. в противном случае язык мог бы попросту остаться мёртво рожденным. примеры таких мёртво рожденных в истории тоже имеются.
0
|
||||
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
|||
| 02.11.2021, 20:58 | |||
|
Просто по обычаю, если и добавят, то перенесут из буста(слегка "причешут" и/или "обрежут").
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 02.11.2021, 22:28 | ||
|
на самом деле он нормальный, если воспринимать его как полуфабрикат, на базе которого нужно сконструировать что-то высокоуровневое под ключ. но в том то и дело, что не хочется ничего велосипедить, а хочется, что бы оно из коробки уже было и простое, и высокоуровневое, и готовое к употреблению.
1
|
||
| 02.11.2021, 22:28 | |
|
Как найти то что можно улучшить в дизайне, юзабилити сайта? Негодяи изменили заставку =) Стрелки изменили назначение В БД access изменили тип данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|