🆕

C++ — Modern C++ (11/14/17/20)

auto, lambdas, smart pointers, move semantics, constexpr, концепты, ranges, structured bindings, вывод типов в современном C++.

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

EasyЧем отличается auto от явного указания типа?MediumВ чём разница между auto, decltype и decltype(auto)?MediumПочему `auto x = {1, 2, 3};` создаёт std::initializer_list<int>?EasyЧто такое лямбда-выражение и какой тип у лямбды?MediumВ чём разница между захватом по значению и по ссылке в лямбде?MediumЧто такое обобщённые лямбды (generic lambdas) и почему они появились только в C++14?EasyЧем nullptr отличается от NULL и 0?MediumЧто такое uniform initialization (фигурные скобки) и зачем оно нужно?MediumЧто такое narrowing conversion и почему brace-init его запрещает?EasyЧто такое std::make_unique и почему его предпочитают new?MediumВ чём разница между std::make_shared и direct std::shared_ptr(new T)?MediumКогда следует использовать std::unique_ptr, а когда std::shared_ptr?MediumЧто такое std::weak_ptr и зачем он нужен?MediumЧто такое move semantics и для чего она нужна?MediumЧто такое rvalue reference и чем отличается от lvalue reference?HardЧто такое perfect forwarding и как он работает?HardЧто такое reference collapsing и какие правила?MediumЧем std::move отличается от std::forward?MediumЧто такое constexpr и чем отличается от const?HardВ чём разница между constexpr и consteval?EasyЧто такое structured bindings (C++17)?MediumЧто такое if constexpr и чем он отличается от обычного if?MediumЧто такое std::optional и когда его использовать?MediumЧто такое std::variant и в чём его отличие от union?MediumЧто такое std::any и когда его применять?MediumЧто такое std::string_view и какие у него опасности?HardЧто такое концепты (concepts) в C++20?HardЧто такое ranges в C++20 и почему они лучше алгоритмов из <algorithm>?HardЧто такое modules в C++20 и чем они заменяют #include?HardЧто такое coroutines в C++20?EasyЧто такое designated initializers (C++20)?MediumКакие основные нововведения в каждой версии C++ с 11 по 20?