C++のテンプレートは構造的型付けであると断言するものより、構造的型付け「に近い」とか構造的型付け「的」とか、ちょっと留保の余地を残した書き振りの説明の方が多くない?
名前的型付けと構造的型付けの対比は主にサブタイピング多相の文脈でクローズアップされるのに対し、テンプレートはパラメトリック多相の系譜だからちょっと区別されているのかなという印象だけど。
stringとvectorは同じ型とされているわけじゃないけど、sizeを持つという点で同じ構造を持っており、それによりprint_sizeとの関係では互換的に使うことが認められる。その意味で構造的型付け「的」ではあるけれども部分型関係があるわけじゃないから、名前的型付けと構造的型付けの対比として典型的に持ち出される場面とはちょっと違う……ということだと思うけど。