✅
C++ — Best Practices и стиль
Современные идиомы, RAII, правило нуля, const correctness, noexcept, naming, структура кода, deprecated практики, безопасный C++.
26 вопросов · 26 показано
MediumСформулируйте правило нуля и почему оно лучше правила пяти?rule-of-zerobest-practicesMediumЧто такое const correctness?const-correctnessEasyПочему нужно предпочитать const T& вместо T в параметрах?pass-by-refEasyПочему нужно избегать using namespace std в заголовках?using-namespaceMediumПочему нужно предпочитать RAII вместо try/catch?raiibest-practicesMediumПочему нужно помечать функции noexcept при возможности?noexceptEasyПочему нужно предпочитать nullptr вместо NULL или 0?nullptrMediumПочему нужно предпочитать uniform initialization (фигурные скобки)?uniform-initMediumПочему нужно избегать raw new/delete?smart-pointersEasyПочему нужно предпочитать scoped enums (enum class)?enum-classEasyПочему нужно использовать override?overrideEasyПочему нужно предпочитать range-based for?range-forEasyПочему нужно использовать [[nodiscard]] и [[maybe_unused]]?attributesMediumПочему нужно предпочитать STL алгоритмы вместо ручных циклов?stl-algorithmsMediumПочему нужно предпочитать std::string_view для параметров?string-viewMediumПочему нужно избегать C-style casts?castsEasyПочему нужно использовать make_unique/make_shared?make-uniquemake-sharedEasyПочему нужно группировать #include в определённом порядке?include-orderEasyПочему нужно предпочитать prefix increment (++it)?prefix-incrementMediumПочему нужно избегать global variables?globalsMediumПочему нужно избегать макросов (#define)?macrosEasyПочему нужно использовать static_assert?static-assertMediumПочему нужно избегать virtual функций в hot paths?virtualperformanceEasyПочему нужно предпочитать std::array вместо C-array?std-arrayMediumПочему нужно использовать initialization lists в конструкторах?init-listMediumКакие практики безопасного C++ самые важные?safetybest-practices