Re[19]: А С++ то схлопывается...
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.11.19 13:50
Оценка: +2
Здравствуйте, so5team, Вы писали:

S>В том-то и дело, что для простейшего случая это и не нужно. В нем есть операция приведения к типу T, поэтому показанный тривиальный constrained_value можно использовать вот так, например:


Мне этот код не нравится. Не нравится он мне тем, что из него может прилететь исключение. Причем в этом исключении будет сказано лишь, что оно относится к некоему constrained_value.

Т.е., если мы выносим такую функцию в интерфейс, скажем, класса, который читает конфигурацию, то тот, кто использует этот класс, должен быть готов, что к нему прилетят исключения, не имеющие в себе никакой информации ни о конфигурационном файле, ни о том, как найти и исправить возникшие проблемы, но зато ссылающиеся на некие низкоуровневые типы, которые читалка конфигирации удосужилась использовать на данном этапе своего развития. Потому что в конечном итоге пользователю надо показать не стек вызовов, а что-нибудь типа "чувак, у тебя в файле myconfig.cfg в 35-й строке какая-то хрень написана, исправь пожалуйста"). И кто-то в пути должен это уметь делать. Причем желательно бы кто-то, кто понимает про конфигурационные файлы, а не тот, кому эти значения на пять этажей выше нужны для работы, и кому все равно, откуда они взялись, лишь бы они были правильными.

S>Теперь хотелось бы посмотреть на это в чистом С.


В C я написал бы явную проверку. И вернул бы явную ошибку. А в Go еще удобнее, я вернул бы результат и ошибку одним махом, там функция может вернуть сразу несколько значений.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.