Инструменты пользователя

Инструменты сайта


Простые правила C++

Данные правила вырабатывались как самостоятельно, так и под влиянием книжек, статей в интернете, обсуждения на SO и RSDN. Но общее в них одно: они выкристолизовывались на практике. Они постоянно в ходу у меня и помогают в нелёгкой жизни программиста. Многие из них применимы к Embedded, а не только к мощным машинам с большими объёмами ресурсов.

Про указатели

  1. Не используйте указатели пока есть возможность. Используйте ссылки.
  2. Если без использования указателя никак не обойтись, постарайтесь использовать умные указатели. Даже API которое вернёт указатель, можно завернуть в умный с нужным deleter'ом.
  3. Используйте std::unique_ptr вместо std::shared_ptr пока это возможно. Всегда возможно превратить unique_ptr в shared_ptr (ценой того, что для контрольного блока будет выделен отдельный кусок памяти).
  4. Но если в каких-то деталях реализации приходится наворачивать сложные схемы при работе с умными указателями - используйте сырые, но тщательно покройте код тестами и проверками. Не давайте доступа к таким деталям наружу - всё, что может сломаться, рано или поздно сломается.
  5. std::vector и std::array, а так же std::string_view/boost::string_view ваши хорошие друзья.

Const correctness

  1. Немутабельные объекты могут быть безопасно доступны из разных потоков. Для них не нужно синхронизации. Тоже относится к константным методам.
  2. В общем, используйте const пока это возможно.