👉
C++ — Указатели и ссылки
Указатели, ссылки, умные указатели, aliasing, lifetime
32 вопросов · 32 показано
EasyЧем указатель (pointer) отличается от ссылки (reference)?указателиссылкиMediumЧто такое rvalue-ссылка (T&&) и для чего она нужна?movervalueHardЧем std::move() отличается от std::forward()?moveforwardHardЧто такое forwarding reference (универсальная ссылка)?forwardHardЧто такое reference collapsing и какие правила?ссылкиEasyЧто такое raw pointer и почему в современном C++ их избегают?умные указателиMediumЧем std::unique_ptr отличается от std::shared_ptr?умные указателиHardЧто такое std::weak_ptr и зачем он нужен?умные указателиHardЧто такое control block в shared_ptr и когда он создаётся?умные указателиMediumПочему нужно предпочитать std::make_shared/shared_ptr(new T)?умные указателиMediumЧто такое custom deleter у умных указателей?умные указателиMediumЧто такое dangling pointer/reference и как избежать?lifetimeUBHardЧто такое strict aliasing rule и почему его нарушение — UB?aliasingUBEasyЧто такое арифметика указателей и какие правила?указателиHardЧто такое pointer to member (.*) и для чего используется?указателиMediumЧем void* отличается от указателей на конкретные типы?указателиMediumЧто такое function pointer и чем он отличается от std::function?callbackHardЧто такое pointer aliasing и как оно влияет на производительность?aliasingperformanceMediumЧем new отличается от malloc?памятьHardЧто такое placement new и для чего используется?памятьMediumЧто такое double free и почему это UB?UBпамятьEasyЧем delete отличается от delete[]?памятьEasyЧто такое memory leak и как его обнаружить?памятьMediumЧто такое stack overflow и как его избежать?стекHardЧто такое heap corruption и какие симптомы?памятьUBEasyЧем nullptr безопаснее NULL?nullptrHardЧто такое std::addressof и зачем он нужен, если есть оператор &?ссылкиMediumЧто такое owning pointer vs observing pointer?умные указателиHardЧто такое enable_shared_from_this и для чего используется?умные указателиHardЧто такое aliasing constructor у shared_ptr?умные указателиEasyЧем отличается const T* от T* const?constуказателиMediumЧто такое RAII-обёртки над legacy API и как их писать?RAIIbest practices