Информация об изменениях

Сообщение Re[9]: Философско-практические вопросы про метапрограммирова от 09.02.2023 20:30

Изменено 09.02.2023 20:31 rg45

Re[9]: Философско-практические вопросы про метапрограммирова
Здравствуйте, Максим, Вы писали:

М>Класс!!! Спасибо большое, особенно за то, что показали как можно применять в реальной жизни "User-defined deduction guides". Не видел такого раньше!


Еще хочу сказать об одной "мелочи" вдогонку, про которую часто забывают. Когда пишешь какую-то обобщенную функцию, для всех возможных вариантов ее специализаций/перегрузок, нужно завадаться вопросом, в каком месте будет возникать ошибка, в случае неправильного использования. Например, при попытке вызвать метод sort для константного объекта (массива или стандартного контейнера), очень важно, чтобы ошибка компиляции возникала в клиентском коде, именно в том месте, где осуществляется попытка сделать неправильный вызов, а не где-то внутри библиотечного кода. А для этого нужно хорошо продумывать реализацию всех метафункций и фильтров SFINAE.
Re[9]: Философско-практические вопросы про метапрограммирова
Здравствуйте, Максим, Вы писали:

М>Класс!!! Спасибо большое, особенно за то, что показали как можно применять в реальной жизни "User-defined deduction guides". Не видел такого раньше!


Еще хочу сказать об одной "мелочи" вдогонку, про которую часто забывают. Когда пишешь какую-то обобщенную функцию, для всех возможных вариантов ее специализаций/перегрузок, нужно завадаться вопросом, в каком месте будет возникать ошибка, в случае неправильного использования. Например, при попытке вызвать метод sort для константного объекта (массива или стандартного контейнера), очень важно, чтобы ошибка компиляции возникала в клиентском коде, именно в том месте, где осуществляется попытка сделать неправильный вызов, а не где-то в потрохах библиотечного кода. А для этого нужно хорошо продумывать реализацию всех метафункций и фильтров SFINAE.