Здравствуйте, kaa.python, Вы писали:
KP>Да, ситуация похожа, это верно. Хотя есть и кардинальное отличие – проблема вылезет на этапе компиляции, а не "когда нибудь потом", что иногда сильно напрягает.
Да, но к сожалению, не всегда. Например, Forward Iterator и Input Iterator имеют одинаковый синтаксис, соответственно ошибки на этапе компиляции не будет (если не делать специальные проверки на
forward_iterator_tag).
EP>>По поводу "все помнят параметры у API наизусть" — важны ведь не только сами параметры, но ещё и pre/post-conditions — так что за исключением каких-то тривиальных случаев, описание придётся читать в любом случае.
KP>Да, за прелести динамической типизации приходится платить
Не, я как раз о другом — pre/post-conditions нужно знать и при статической типизации. То есть, независимо от того, знаем ли мы точную сигнатуру функции или нет — нам потребуется дополнительная информация о pre/post-conditions.
Конечно при хорошем/консистентном API, либо совсем тривиальном, о многом можно догадаться взглянув на набор параметров, но всё-таки в общем случае нужно читать документацию (и при статической и при динамической типизации).