Нотатки
-
CTAD і deduction guides у C++17/20
cpptemplates
Як компілятор виводить параметри шаблонів класів без make-фабрик, навіщо потрібні явні гайди та що змінилося в C++20.
-
Deducing this — один get замість чотирьох
cppcpp23templates
Як у C++23 звести перевантаження get для tuple protocol до одного методу з this Self&& і std::forward_like.
-
Deducing this замість CRTP
cppcpp23templates
Як явний параметр this у C++23 прибирає шаблонний Base
, static_cast і типові помилки CRTP. -
std::forward_like у C++23
cppcpp23templates
Навіщо forward_like, чим відрізняється від std::forward, матриця поведінки та концептуальна реалізація.
-
Structured Binding для власного класу — tuple protocol
cpptemplatescpp17
Спеціалізації std::tuple_size, std::tuple_element і get
, щоб auto [a, b] працював з типом із приватними полями. -
Structured Binding — прихована змінна і підступи
cpptypescpp17
Як компілятор розгортає auto [a, b], чому decltype(a) не дає посилання, і де легко отримати dangling або «фальшивий» const.
-
Виведення типів після C++14 — що додалося
cpptypestemplates
Твердження Мейєрса про виведення типів лишається актуальним у C++20/23; контекстів стало більше, а не менше.
-
Виведення типів у C++ — три стовпи
cpptypestemplates
Template type deduction, auto, decltype і decltype(auto)