ну или same_as. Суть не меняется. Имеет смысл весь этот пердолинг делать. Особенно когда раскидываешь декларацию и реализацию(тут это как специализация) по разным файлам. Чисто все ради explicit
а зачем этот ваш эксплисит, чтобы что
а чем старый добрый double someCalc(int a, int b) не устраивает?
ну видимо тем что можно написать int x = someCalc(false, 3.14); и оно даже скомпилится и что-то сделает? возможно пару ворнингов выдаст, если они включены
Проблемы проектирования апи
ну вот человек и предлагает концептами его так спроектировать чтобы левые типы не пролезали, даже если могут неявно привестись 🤷♂️
Ну тогда кажется надо просто разрешить что то такое void foo(explicit int a); и проблема решена
это не проблема изначально...
Ну понятно что фича, но некоторые считают проблемой.
вызывает физическое отвращение
И сломать кучу кода?
понятно что такое в с++ в общем не завезешь. Но можно завезти в любой проект настройками компилятора
И сломается вся стдлиба:)
де-факто было бы неплохо иметь возможность просто включать для всех конструкторов по дефолту explicit constexpr noexcept
что за глупость. Корректность всегда должна быть в приоритете над сахарком
тебе денежку платят за то чтобы код работал или чтобы он был красивый?
А чем имплисит не корректен? Все правила описаны и вроде как большая троица их соблюдает.
некрасивый код поддерживать нельзя
ой таки прям явный каст не даст поддерживать код, лол. Не говоря о том что поддержка это поиск и устранение багов. И ошибки с неявными кастами очень сложно глазами отсмотреть
лол у меня если б были запрещены неявные касты код вздулся бы раз в 5
не "не корректен" а "не обязательно корректен". Так-то и явный каст не обязательно корректен, просто шанс фейла ниже
в масштабах методички первокурсника это не имеет значения.
ты делаешь буквально то же действие
разгица в том, делаешь ли ты его осознанно
А кто-нибудь видел статистику? Потому что мой личный опыт говорит об обратном: явные касты для избавления от предупреждений позже приводили к ошибкам. Вообще идея дублировать информацию о типе в неограниченном списке мест (который еще далеко не всегда возможно нагрепать) при том, что явный каст в плюсах отключает всю диагностику компилятора представляется мне сомнительной идеей.
Обсуждают сегодня