However the Type Erasure described here doesn't need to know T even when you use it. E.g. it enables things like
for (auto x : vec) { x.foo(); }
for (auto x : vec) { x.foo(); }
As far as I know (I don't really follow the committee work) the latest attempt to introduce run-time duck-typing in the standard was https://github.com/andyprowl/virtual-concepts, which seems dead.
> run-time polymorphism (type erasure)
I would argue that it's the first rather than the second.