- В C++ доступна вся C-библиотека. Когда C++ сам себе разумеется нет,
а как ты себе представляешь? Можешь написать свою реализацию... Что
может C++, чего не могут другие: fk0(3338 знаков, 23.09.2020 00:30, ссылка, ссылка)
- Не могу согласится со всем. Kabdim(1039 знаков, 25.09.2020 11:46)
- Твоё сообщение не содержит никакой осмысленной аргументации.
"Багодром, в современных языках заменено, вскрывающееся зло,
выстрелы в ногу, рукожопы..." -- это лишь _твоя_ оценка,
субъективная. Теперь по пунктам: fk0(4024 знаков, 25.09.2020 12:58)
- Добавлю про метопрограммирование. Когда я по взглядам был ближе к
твоей точке зрения, понадобилось мне не простая, но и не сложная
парсилка текста. Решил сделать библиотекой на мете, а именно на
boost::Spirit. Получалось красиво, но по мере приближения %
реализованного к задуманному время компиляции не сложного проекта
уверенно подбиралось к 10 минутам. Что приводило к чудовищным
потерям моих временных ресурсов. Это изрядно меня озадачило, сделал
то же самое руками, Kabdim(562 знаков, 25.09.2020 16:09)
- Ты пытаешьсая упорно подвести к тезису, мол в языке есть некоторый
функционал позволяющий выстрелить себе в ногу, ты сам лично пару
ног себе отстрелил, поэтому язык негодный и плохой, а ровно такие
же языки только без этого функционала -- мол лучше. Потому, что
выстрелить в ногу нельзя. Чушь. Считаешь функционал лишним, не
нужным -- можешь его попросту не использовать. В данном конкретном
случае. Потому, что в общем это не совсем так, в общем он далеко не
лишний, т.к. fk0(1140 знаков, 02.10.2020 10:06)
- Обычно все кто мне встречался приходили к примерно тем же выводам,
без необходимости внешних аргументов. Ну ладно, требование
аргументировать оно рациональное и правильное. Kabdim(3154 знаков, 25.09.2020 13:47)
- Метапрограммирование не решается внешним шаблонизатором. Потому,
что последний работает исключительно на уровне исходного текста.
Это совсем не то, потому, что шаблоны в C++ работают не на уровне
отдельных буковок, а в пространстве типов языка. Это совсем другая
история. Чтоб повторить то же самое во внешнем макропроцессоре на
нём придётся написать половину компилятора C++, что очевидно
невозможно. Внешний шаблонизатор не сможет, например, генерировать
разный код в fk0(471 знаков, 02.10.2020 10:43)
- В чём кошмар? Оптимизатор не идеален и работает как может? И в чём
проблема? Лучше так, чем никак. На других языках часто получается
вообще никак, всегда плохонько оптимизированный код. C++ даёт
возможность, но насколько она будет использована -- влияет масса
других факторов. Но хотя бы сама возможность она есть. У других же
и теоретической возможности нет оказывается. И зачем сразу
ассемблер. Он нужен чтоб посмотреть его и разобраться, и в
исходнике на C++ подтолкнуть fk0(430 знаков, 02.10.2020 10:33)
- С другими языками и совместимостью с C -- большие проблемы из-за: fk0(945 знаков, 02.10.2020 10:27)
- Так или иначе C++ широко используется при создании ОС и компонентов
ОС. На C++ вообще хотя бы возможно создавать ОС. Ничего никуда
"падать" при нормальном программировании не должно. Там самая
большая проблема на самом деле -- ABI. Поэтому интерфейсы должны
оставаться сишными. Создать же ОС на Java или C# прямо скажем
сложно... Многие RTOS написаны на C++. - fk0(02.10.2020 10:19)
- Следуя такой логике (пункт 1) язык C нужно вообще закопать. В руках
вчерашнего студента он может быть ещё более страшен. Но ведь живёт
и здравствует. У каждого своя ниша. Очевидно, что C++ в ту область,
где работают студенты с околонулевым опытом -- не попадает. Это
язык для профессионалов с многолетним опытом работы. Это язык для
создания высокоэффективных и надёжных программ. Он не эффективерн в
области "веб дизайна" (высокая сложность и низкая скорость
разработки), в fk0(496 знаков, 02.10.2020 10:15)
- какие книги Вы читаете, что так гладко и по делу излагаете? - Constantin24(24.09.2020 21:43)
- Спасибо! Отлично написал! - Evgeny_CD(23.09.2020 00:35)
- В общем случае может быть 2-3 подхода перечисленных ниже. В базе
всегда SFINAE -- шаблон откидывается и просматриваются следующие,
если тип в шаблоне не может быть выведен. Сегодня, при
использовании C++17, можно использовать идиому void_t (см. на
cppreference.com) для того, чтобы написать шаблон типа
раскрывающийся по-разному (true/false) если для его параметра можно
или нельзя определить возвращаемое значение искомой функции (через
decltype) которая как будто fk0(3486 знаков, 02.07.2020 15:23, ссылка)
- Ты хочешь static_if, которого в C++ в чистом виде нет. constexpr if
это совсем не то, т.к. он
неизбежно будет компилировать невыполняющиеся
ветви я сам уже запутался... будет но в случае шаблонов можно
использовать не определённые функции/переменные (прошу носом ткнуть
в стандарт, кто понимает лучше), более того, результат компиляции
может загрязнить имеющие отношение к участвующим типам пространства
имён новыми неожиданными функциями -- помнится кто-то fk0(279 знаков, 02.07.2020 17:14, ссылка)
- Надо понимать, что класс -- это не структура. Применительно к C++
мне больше нравится слово тип. Тип -- это сущность существующая
преимущественно в момент компиляции и обладающая некоторыми
свойствами, в машинном коде она превращается в функции и структуры
в конечном счёте, а то и вовсе ни во что не превращается, если все
вычисления проделаны при компиляции. Тип на самом деле это очень
легковесная конструкция. Это лишь абстракция служащая для
определения отношений между fk0(1609 знаков, 26.04.2020 11:13)
- C#, Java и тем более Javascript -- это совсем другой код, нежели C++. На порядок менее оптимальный, если конечно задача не сводится к тому, что подёргать за уже имеющиеся API (сделанные на C/C++). C++ позволяет статический полиморфизм и вычисления fk0(2124 знаков, 19.12.2019 00:18)
- С языком очень даже связано. Компилирующие языки со статической типизацией (C++, C#, Java, C, Pascal) пропускают гораздо меньше ошибок, чем ассемблеры (без типизации) или скриптовые языки (Python, Javascript). В последних пока не запустишь -- не fk0(1364 знаков, 17.12.2019 12:24)
- Не совсем. C++ -- это уход в сторону _типизированных_ ЯВУ, а Java или C# -- подвижка в сторону "управляемого кода" и что наиболее важно, автоматического управления памятью. В последних правда метапрограммирование загнобили на корню. Но не важно, fk0(948 знаков, 03.11.2019 21:49)
- Мне какой-то куб для Renesas вспомнился, лет 6 тому назад. Они хвалились, что у них код компилится сразу, как его пишешь. В итоге когда допишешь -- он сразу скомпилирован. Ну и ошибки сразу красным подсвечивает (ещё б сделали, чтоб ошибочный код fk0(665 знаков, 25.10.2019 13:13)
- Ахаха. "Hic sunt dracones" - это про плюсы. А на макросы бочку не кати - там хотя бы более-менее понятно, как оно работает. А число драконов будет лишь расти, ибо свежие стандарты печатает бешеный принтер :-) - SciFi(25.10.2019 13:21 - 13:24, ссылка)
- Вдогонку. Никогда не понимал, поэтому, и людей пишущих программы сверху вниз (сразу всё придумал, и сел за комп только записать -- ага), ни авторов IDE с очень волшебными подсветками и подсказками. У меня последнее никогда не работает, потому, что fk0(489 знаков, 25.10.2019 13:18)
- С этого стоило и начинать. С того, что язык скриптовый. И это уводит совсем в другую сторону, практически в параллельную вселенную. Для тех кому лень дальше читать: ActiveState Komodo. fk0(10857 знаков, 01.03.2019 01:34)
- EvgenyCD! Смотри ссылку! Я понял, что это круче чем swig, например, в определённых обстоятельствах. Правда руки применять надо. fk0(2060 знаков, dao, полностью, 09.02.2017 21:03 - 21:20, ссылка)