Дядя Миша скорее я знаю плюсы плохо, в рамках HLSDK, но вот например с перегрузкой методов в яве такие же дела. Хотя мне всегда казалось, что сигнатура функции при компиляции в байткод может иметь отдельный байт или маску на возрвращаемый тип, что позволит делать рекурсивную перегрузку
Дядя Миша писал: То ли вы так хорошо язык знаете, то ли вам просто неинтересны эти подробности.
Народу нужна нормальная мув-семантика, асинхронность, std::filesystem и ranges. А ты пишешь про перегрузку функций. Здравствуй, мой 1996 год, как говорится.
Добавлено 08-06-2022 в 14:35:
А, поддержка coroutines ещё.
У тебя, надеюсь, будет нативная поддержка ключевого слова yield?
Добавлено 08-06-2022 в 14:37:
До появления С++20 приходилось извращаться кто как умеет.
Ну наверное глупо начинать с фичей 2020-го года, пока не реализованы фичи 1983-го?
Добавлено 08-06-2022 в 22:12:
Цитата:
XaeroX писал: Это как пауза в выполнении функции.
Сам по себе пауза не нужна. Я почему и спрашиваю - чтобы передать управление другому потоку?
Добавлено 08-06-2022 в 22:15:
Цитата:
XaeroX писал: А, поддержка coroutines ещё.
Пока я не вдуплю зачем это вообще нужно - не будет.
Я хотел сделать возможность объявить функцию внутри функции.
Не понимаю чем это от лямбды отличается.
Да и потом, в вашем этом хвалёном С20 сериализация изкаропки появилась?
Дядя Миша думаю разрослись засчёт сторонних либ и обратной совместимости. На мобилках как-то впихивали, вот прошивки на мои SonyEricsson весили в пределах 50Мб
AntiPlayer писал: например про неявное преобразование типов
Неявное преобразование выполняется там, где результат однозначен для программиста и не влечёт UB. В некоторых случаях преобразование возможно с потерей точности, тогда выдаётся предупреждение.
Скажем int->double вопросов не вызывает, а вот double->int уже да.
Для указателей эти требования еще строже. Нельзя объявить указатель на double и положить туда int без явного преобразования, у них как минимум разные размеры.
Как оно в Яве я не знаю. Там кажется любая переменная имеет на самом деле тип variant, поэтому можно даже bool преобразовать в строку "false" ну или "true".
В Си наоборот слишком дохрена неявных преобразований, там где С++ уже ругается и нехочит.
Пример
C++ Source Code:
unsignedchar *foo = malloc( 123 );
Для си это валидная конструкция, он позволяет кастовать из void* к любому типу, а С++ позволяет только обратное неявное преобразование - любой тип к void*.
Важное событие! Сегодня написал имплементацию динамического массива прямо на скриптовом языке. Насколько я знаю, ни на шарпе ни на яве это сделать невозможно в принципе. То есть можно унаследовать динамический массив от намертво встроенного в язык, а вот так чтобы с нуля - невозможно.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!