Ошибки, баги, вопросы - страница 2325
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А были серьезные причины отказаться от оператора ->?
Нет, серьёзных причин не было.
Единственное оправдание его отсутствия - это забота о неокрепших умах пользователей, не знакомых с C++.
Двойное отрицание компилятор оптимизирует?
Да, оптимизирует
Нет, серьёзных причин не было.
Единственное оправдание его отсутствия - это забота о неокрепших умах пользователей, не знакомых с C++.
Думаю, что ничего страшного не случится, если вы его добавите.
На какое-то время можно будет разрешить использовать точку с указателями, там где нет неоднозначности.
И конечно выдавать предупреждение.
Думаю, что ничего страшного не случится, если вы его добавите.
На какое-то время можно будет разрешить использовать точку с указателями, там где нет неоднозначности.
И конечно выдавать предупреждение.
Зачем так усложнять? Вполне достаточно сделать . и -> равноценными, взаимозаменяемыми записями
Образно говоря
#define -> .
Да, в Вашем случае неоднозначность. По-хорошему, на такое должно быть, как минимум, предупреждение компилятора.
В моем же гораздо более простом случае все четко. Думаю, и C++ с этим согласен.
у Вас мнимая чёткость - небольшое изменение (класса A) и смысл кардинально меняется
Это изменения класса и должно приводить к соответствующему сообщению компилятора.
Если его нет, значит полная однозначность.
Как временное решение, используйте оператор '!' (logical not)
Мы подумаем на решением (можно ли менять поведение сейчас, когда существует большое количество кодов ?)
Возможно, что для указателя, операция приведения к bool, будет операцией над указателем, а не объектом на который он указывает.
Без изменения существующих кодов не получится... рушится вся концепция указателей как динамических объектов
Т.е. вместо простой записи
нужно будет писать путанную
if ( *a * *b );//(2)
И все это ради чего? Чтобы можно было проверять указатель на NULL? - Для этого есть оператор сравнения:
Зачем его дублировать?
рушится вся концепция указателей как динамических объектов