Когда вы достигаете умного указателя, std :: unique_ptr обычно должен быть быть ближайшим под рукой. Разумно предположить, что по по умолчанию std :: unique_ptrs имеют тот же размер, что и исходные указатели, а для большинства операций (включая разыменование) они выполняют точно такие же инструкции . Это означает, что вы можете использовать их даже в ситуациях , где память и циклы жесткие. Если необработанный указатель достаточно мал и достаточно быстрый для вас, std :: unique_ptr почти наверняка тоже.std :: unique_ptr память и производительность
-Скотт Мейерс (эффективная Современный C++)
Как смелая часть может быть правдой, это занимает две фазы, чтобы найти сырой PTR в смарт-PTR, а затем вызвать метод. Как они могут быть одинаково быстрыми?
Что такое «найти необработанный ptr в smart ptr»? Фактический указатель (обычно) является просто членом интеллектуального указателя, нет необходимости «находить» что-либо. – lisyarus
Оптимизация. Это замечательная часть о C++, которой все могут наслаждаться! – ThePhD
Направленность, скорее всего, оптимизирована, потому что весь код доступен для оптимизатора. – juanchopanza