Re[4]: Внезапно, ||= и &&=
От: _NN_  
Дата: 10.08.25 07:55
Оценка:
Здравствуйте, rg45, Вы писали:

R>Здравствуйте, Marty, Вы писали:


M>>Кстати, а почему ты считаешь, что результат должен быть строго типа bool? Для || и && такого требования нет


R>Как это нет? И какой, по-твоему, тип результата, кроме bool, может быть, например, у выражения 42 && 43? int, что ли?


Это про встроенные в язык.
У пользовательских перегрузок может быть любой тип возврата.
struct A {
  friend A operator&&(A const&, int a) {
    return A();
  }
};

int main() {
   A a;
   a = a && 5;
}


Основаная причина почему не перегружают, это потеря оптимизированного невычисления второй части выражения.
Более интересен вопрос, а что за случай такой, что нужно перегрузить &&, ||.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.