読者です 読者をやめる 読者になる 読者になる

色々新しいパラダイムもあるけれど,subtype polymorphism も元気ですみたいな話

.NET
var children = new List<Child>(); // List<Child> の concept は保存される

ICollection<Child> children = new List<Child>(); // ICollection<Child> まで concept を弱める

真の concept-based overload があって,それがライブラリ設計者にとっても利用者にとっても当たり前の世界を考えてみます.この場合,具象型の持っている concept はなるべく捨てない方が,あとで何かの関数に喰わせたとき,より良い実装が選ばれる可能性があるわけで,それは var や auto を使う積極的な動機になるのかもしれません.