14:00 Там натурально вызывается глобальный new для выделения памяти и этот код обязан вставить компилятор. Во встраиваемых системах абсолютно недопустимо, чтобы рантайм плюсов сам принимал решения что где он выделит для себя. Это аргумент в пользу тех, кто утверждает, что C++ -- это не системный язык программирова6ия и его не используют для разработки драйверов режима ядра операционной системы и во встраиваемых системах, не говоря уже о тех, в которых, например, нет динамической памяти или она крайне ограничена для использования. Приходится городить глобальные переопределения оператора new через placement new.
@stepanzorin7594
5 ай бұрын
@mesyarik, интересное наблюдение. 39:20. Я попробовал в двух компиляторах: MSVC и llvm clang (в CLion). MSVC: friend помогло, Mom снова стало видно clang: friend не помогло. Выводится Son. в компиляторе g я думаю та же логика, что и в clang. Либо в MSVC очередные оптимизации какие-то, чтобы код заработал любой ценой)))
@user53242
3 ай бұрын
Что ни сделаешь ради того, чтобы заслуги msvc всё равно поставить ему в качестве недостатков. Тем временем в msvc уже давно можно писать import std; и беспрепятственно наслаждаться всеми прелестями стандарта C++23.
@mykhailopanchenko2020
3 ай бұрын
12:00 Не понял, почему А создается в динамической памяти, а не на стеке?
Пікірлер: 4