🔁

C++ — RAII, перемещение, владение

RAII как фундамент C++, правило пяти/нуля, move-конструкторы, copy elision, NRVO, управление ресурсами, идиома владения, swap.

30 вопросов · 30 показано

EasyЧто такое RAII и почему это основа C++?MediumВ чём отличие RAII от сборки мусора (GC)?EasyСформулируйте правило трёх (Rule of Three).MediumСформулируйте правило пяти (Rule of Five).MediumСформулируйте правило нуля (Rule of Zero).MediumЧто такое copy elision и когда компилятор его применяет?MediumЧем NRVO отличается от RVO?MediumПочему move-конструкторы должны быть noexcept?HardЧто такое copy-and-swap идиома?MediumКак реализовать swap для своего класса?HardЧто такое идиома Pimpl (pointer to implementation)?MediumЧто такое ownership и какие виды владения бывают в C++?EasyПочему не стоит использовать std::auto_ptr?HardЧто такое intrusive reference counting?MediumЧто такое small buffer optimization (SBO) и где он используется?EasyВ каком состоянии находится объект после std::move?MediumЧто такое перемещающий конструктор по умолчанию (= default)?HardЧем отличается `T&& x` от `T& x` в шаблоне?MediumЧто такое exception safety guarantees и какие бывают?MediumЧто такое идиома pimpl и зачем нужен явный деструктор в .cpp?HardЧто такое smart pointer deleter и когда он полезен?HardЧто такое enable_shared_from_this и когда он нужен?EasyЧем отличается stack allocation от heap allocation?MediumЧто такое static lifetime и каковы особенности static-объектов?MediumЧто такое thread-local storage (thread_local)?HardЧто такое идиома CRT (Curiously Recurring Template Pattern)?HardЧто такое expression templates?MediumЧто такое идиома non-virtual interface (NVI)?EasyЧто такое RAII-обёртка для mutex (std::lock_guard, std::unique_lock)?MediumПочему нельзя бросать исключения из деструктора?