Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
«Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует.»
Bjarne Stroustrup.
И так у вас набегает 2986 классов, хотя программа все еще, по сути, это вложенные четыре цикла с парой сложений и умножений внутри
В случае С++ весь overhead — только виртуальные функции (+1 операция на lookup)* На этапе компиляции — это барьер для оптимизаций. Вы не можете встраивать через виртуальные функции
* На этапе компиляции — это барьер для оптимизаций. Вы не можете встраивать через виртуальные функции
Всего в мире сейчас более 19 млн разработчиков,
The type of a u8"..." string literal is const char[].А нужен бы стандартный способ работы с массивами нормализованных символов как неделимых логических сущностей — в частности со встроенной нормализацией (простым использованием UTF-32 это автоматически не решается, т. к. один символ может быть образован более чем одним code point).
length строки æ будет равно 1, а "æ".substr(0, 1) вернёт символ æ, а не его половину. ;-)trim(), split(), join(), в результате чего, чтобы просто начать писать программы, требуется сначала реализовать собственную библиотеку таких функций или использовать стороннюю библиотеку. Опять же, не критично, но странновато.Например, в JavaScript свойство length строки æ будет равно 1, а "æ".substr(0, 1) вернёт символ æ, а не его половину. ;-)
C++ вообще несколько удивляет отсутствием некоторых общеупотребительных функций
У строки нет такого атрибута, как язык.
Не говоря уж о задачах поиска типа «все слова длиной от 1 до 3 букв», «все слова в верхнем регистре» или «определить общее количество символов в тексте».
30 лет С++