Почему библиотеки и платформы C++ никогда не используют интеллектуальные указатели?

Я читал в нескольких статьях, что необработанные указатели почти никогда не должны использоваться. Вместо этого они всегда должны быть обернуты внутри интеллектуальных указателей, независимо от того, являются ли они указателями области действия или общими.

Однако я заметил, что такие фреймворки, как Qt, wxWidgets и библиотеки, такие как Boost, никогда не возвращают и не ожидают интеллектуальных указателей, как если бы они вообще их не использовали. Вместо этого они возвращают или ожидают необработанные указатели. Есть ли причина для этого? Должен ли я держаться подальше от интеллектуальных указателей при написании общедоступного API и почему?

Просто интересно, почему умные указатели рекомендуются, когда многие крупные проекты их избегают.

156
задан laurent 26 April 2012 в 13:31
поделиться