Должны ли они действительно использоваться, даже если я проверяю утечки памяти на выделенных блоках памяти?
YES
Цель интеллектуальных указателей состоит в том, чтобы помочь вам реализовать RAII (SBRM) , что в основном позволяет самому ресурсу взять на себя ответственность за его освобождение и ресурс не нужно явно полагаться на вас , помня , чтобы освободить его.
Если я их не использую, можно ли это считать слабостью программирования?
NO
Это не слабость, а неудобство или ненужные хлопоты, чтобы явно управлять ресурсами самостоятельно, если вы не используете интеллектуальные указатели (RAII). Цель интеллектуальных указателей для реализации RAII состоит в том, чтобы обеспечить эффективный и беспрепятственный способ обработки ресурсов, и вы бы просто не использовали его, если не используете его. Настоятельно рекомендуется использовать его исключительно для многочисленных преимуществ , которые он обеспечивает.
Если интеллектуальные указатели (например: std :: auto_ptr) настоятельно рекомендуются, следует ли использовать их вместо каждого обнаженного указателя?
YES
Вы должны использовать интеллектуальные указатели везде, где это возможно, потому что просто нет недостатка в их использовании, а есть только многочисленные преимущества их использования.
Не используйте auto_ptr
, потому что это уже устарело! Существуют различные другие умные указатели, которые вы можете использовать в зависимости от требований. Вы можете обратиться по ссылке выше, чтобы узнать больше о них.