C++26 Reflection makes it possible for library code to inspect and use compile-time information about concrete types. This enables a different approach to dynamic polymorphism in which the relationship between an interface and a concrete type can be established without requiring the concrete type to participate in an inheritance hierarchy.