Выложил пятую лекцию магистерского курса на английском.
https://youtu.be/M8Zv6BCNOhE
Лекция посвящена выводу типов. Мы начнём внезапно не с C++, а с Haskell и рассмотрим как устроен вывод типов, основанный на унификации Хиндли-Милнера. Далее я объясню почему этого нет в C++ и мы начнём собственно путешествие по auto, decltype, категориям выражений и правилам того вывода типов, который у нас есть. В конце мы исследуем сложное взаимодействие вывода типов с остальными семантическими процессами и рассмотрим как он используется, чтобы установить частичный порядок шаблонов функций.
00:00 Why there is no HM-style inference in C++
09:10 Auto-style type deduction
17:17 Deduction of elaborated types
23:46 Rvalues and rvalue references recap
32:05 Collapsing and deduction for references
40:08 Decltype and its rules
45:17 Declval
48:56 Decltype(auto) and our way to transparent wrapper
01:04:20 Class template argument deduction
01:12:02 Interaction with overload resolution
01:17:40 Partial order of function templates
01:22:26 Homework and bibliography
#cpp_postgraduate
Post #307
13.8K