ŹR
Size: a a a
ŹR
Е
LL
Е
LL
AB
C++ is an interesting hybrid, actually. At a base level, C++ is nominatively typed--two classes with different names are not considered equivalent; and subtyping must be explicitly declared (via inheritance). However, the template system uses structural typing--any type can be an argument to any template; and the compiler won't complain unless a particular instantiation of a template is incompatible with its declaration. (See LatentTypesSmell for more on this).
LL
Е
C++ template functions exhibit structural typing on type arguments.AB
LL
D и в C++ будут физически разные функции для разных типовЕ
AB
Aß
LL
Aß
Е
Aß
ŹR
Е