Как стать автором
Обновить

Комментарии 6

позволяют достаточно гибко обнаруживать наличие методов, как подходящих, так и строго соответствующих заданной сигнатуре

Наличие метода вообще-то не говорит о том что он реализован, например там может быть заглушка которая кидает исключение not implemented или возвращает всегда ошибку и еще помечен как depricated. В чем полезность такого механизма, кроме самой возможности его реализации?

скорее всего - static_assert() в библиотеках для более удобочитаемых сообщений об ошибках. ну или общие библиотеки которые могут вызывать возможно по разному поименованные схожие методы. ну к примеру, есть классы с clear() и Clear() в двух разных библиотеках, а нам надо шаблон который будет работать с любой из них.

если у тебя в коде какая то заглушка которая кидает ошибку то ты что то сделал не так

Вообще-то она бывает не у меня в коде, а в системной библиотеке на конкретной платформе.
НЛО прилетело и опубликовало эту надпись здесь
Например, вы делаете универсальный метод который будет сериализовать переданную сущность в строку
Для такого метода подобные приёмы не нужны. Более того они вредны. Вместо того что бы сделать отдельные шаблоны serialize для каждого исторического пласта, вы хотите всё запихать в метод который должен учесть всё накопленную историю, а по возможности и будущую.

то вы об этом узнаете при прогоне юнит-тестов
Это в идеале да. Но на практике скорее всего пока не наступите не узнаете.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории