Summary
Jason explores three categories of types in C++ that cannot be directly named by the programmer: lambda types (which have compiler-generated unique names), local classes defined within functions, and private inner classes nested within other classes. He demonstrates how these can be returned from functions by using auto return type deduction or base class pointers, and explains how these unnameable types can be used intentionally to hide implementation details while still exposing functionality.