Size: a a a

2020 June 19

AN

Alexander N in pro.cxx
Надо по идее все неявные касты считать ошибкой. Это к слову о касте bool итд
источник

D

Danya in pro.cxx
Alexander N
Надо по идее все неявные касты считать ошибкой. Это к слову о касте bool итд
Кажется, тогда никто не перейдет на новые плюсы
источник

AN

Alexander N in pro.cxx
Danya
Кажется, тогда никто не перейдет на новые плюсы
Почему же
источник

D

Danya in pro.cxx
Alexander N
Почему же
Потому что код собираться старый не будет
источник

D

Danya in pro.cxx
С if (ptr)
источник

AT

Andrew Titov in pro.cxx
Danya
С if (ptr)
Это явный каст, кажется.
источник

CD

Constantine Drozdov in pro.cxx
да
источник

D

Danya in pro.cxx
Andrew Titov
Это явный каст, кажется.
Если так, то извиняюсь
источник

CD

Constantine Drozdov in pro.cxx
это explicit conversion to bool
источник

CD

Constantine Drozdov in pro.cxx
Danya
Если так, то извиняюсь
никогда explicit operator bool() не видел?
источник

CD

Constantine Drozdov in pro.cxx
он нужен, чтобы нельзя было unique_ptr складывать :)
источник

DS

Dolphin Soft in pro.cxx
Constantine Drozdov
это explicit conversion to bool
contextually convertion to bool
источник

CD

Constantine Drozdov in pro.cxx
Dolphin Soft
contextually convertion to bool
спасибо за точную терминология стандарта, но она тут не особо важна - в выражениях типа bool x(expression); или if(x) будут отрабатывать explicit преобразования, а в bool x = expression; и bool f() { return expression; } - нет. Стандарт может по любой причине считать этот случай особой версией implicit, но я буду упрямо придерживаться формы, что implicit это bool f() { return expression; } и не шире :)
источник

DS

Dolphin Soft in pro.cxx
Constantine Drozdov
спасибо за точную терминология стандарта, но она тут не особо важна - в выражениях типа bool x(expression); или if(x) будут отрабатывать explicit преобразования, а в bool x = expression; и bool f() { return expression; } - нет. Стандарт может по любой причине считать этот случай особой версией implicit, но я буду упрямо придерживаться формы, что implicit это bool f() { return expression; } и не шире :)
Это не так
источник

DS

Dolphin Soft in pro.cxx
expression тоже может быть contextually convertion
источник

DS

Dolphin Soft in pro.cxx
!t
t && t2
t || t2
t ? "true" : "false"
источник

CD

Constantine Drozdov in pro.cxx
это не отменяет того, что я использую слова implicit для обозначения не задействующего explicit user defined, а explicit - задействующего
источник

DS

Dolphin Soft in pro.cxx
Ты просто еще больше запутываешь )
источник

CD

Constantine Drozdov in pro.cxx
и да, я понимаю, что для unique_ptr это будет компилироваться
источник

CD

Constantine Drozdov in pro.cxx
мне в данном случае принципиально по-разному назвать две возможности, а вот стандарт с его определениями контекстного преобразования делает немного фигню
источник