Part 1 of this series covered lambdas , auto , and static_assert . Part 2 of this series covered rvalue references , which enable move semantics and perfect forwarding . Today, I'm going to talk about decltype , which allows perfect forwarding functions