C++14 has many ways of naming a type. In addition to using the type's name directly, we have auto, auto &, auto const &, auto &&, decltype(auto), and decltype(some-expression). In C++11, these methods of type deduction only applied to variable declarations, but C++14 adds return type deduction for normal functions.
When should we use this powerful feature, and when should we be more explicit with our types? What new types of libraries do these features allow, and what are the risks?
We will talk about how to design a modern C++ library that takes advantage of type deduction without harming readability.Slides ODP File