⚙️
C++ — Метапрограммирование и compile-time
Шаблоны, SFINAE, type traits, constexpr, consteval, concepts, вариативные шаблоны, вычисления на этапе компиляции, инстанцирование.
28 вопросов · 28 показано
EasyЧто такое template и для чего нужны шаблоны?templatesMediumЧем function template отличается от class template?templatesMediumЧто такое template specialization (явная специализация)?specializationHardЧто такое SFINAE?sfinaeHardЧто такое std::enable_if и как им пользоваться?enable-ifsfinaeMediumЧто такое type traits и для чего они нужны?type-traitsMediumЧем decltype отличается от auto?decltypeautoHardЧто такое variadic templates и parameter packs?variadicparameter-packsHardЧто такое fold expressions (C++17)?fold-expressionc++17MediumЧто такое class template argument deduction (CTAD)?ctadc++17MediumЧто такое constexpr-функция и какие у неё ограничения?constexprHardЧто такое literal type?literal-typeMediumЧто такое consteval и когда использовать?constevalc++20EasyЧто такое static_assert?static-assertHardЧто такое tag dispatch?tag-dispatchHardЧто такое CRTP и для чего используется?crtpMediumЧто такое compile-time factorial через шаблоны?template-metaprogrammingHardЧто такое идиома detection (detect member)?detection-idiomHardЧто такое std::common_type?common-typeHardЧто такое two-phase lookup?name-lookuptemplatesHardЧто такое ADL (Argument-Dependent Lookup)?adlMediumЧто такое inline variable (C++17)?inline-variablec++17HardЧто такое дружественные шаблоны (friend templates)?friendtemplatesHardЧем partial specialization function template запрещён?partial-specializationHardЧто такое идиома type erasure?type-erasureMediumЧто такое std::tuple и как им пользоваться?tupleHardЧто такое std::index_sequence и для чего?index-sequenceHardЧто такое expression SFINAE?sfinaeexpression