std::shared_ptr<T> p;
S(std::shared_ptr<T> pp) : p(pp) {}
Компиляторы умеют убирать копирование шареда тут или нет?
Думаю что нет
я вот тоже так думаю. но хочу :(
Мало ли что ты хочешь
Неа
Напиши кланг-тайди тулу, которая будет бить по рукам за такое, если хочешь автоматизировать
а она уже вроде как бьёт
В libcxx add_shared вынесен в .cpp, который вообще обычно в отдельной динамик либе https://github.com/llvm/llvm-project/blob/main/libcxx/src/memory.cpp#L41
> отдельной динамик либе F
Хотя тут интересный ифдеф, мб я неправ
Ну да, жесть какая-то https://godbolt.org/z/161EG89Yn
Я крайне плох в оценке асма, но вариант с -Os у gcc в сравнении с любым флагом у clang выглядит интересно
Это из-за -stdlib=libc++
Обсуждают сегодня