Virtual function contracts need the caller and the implementation
engineeringcppcontractspolymorphismP3097R0 proposes checking the interface used by a caller alongside the dynamically selected override. Its design avoids inheriting every assertion across an entire class hierarchy.