Недавно я нашел код, в котором используется ключевое слово и который работает как &&. Так они оба одинаковы или есть какие-то особые условия для их использования?

3
S_coderX451 12 Июл 2021 в 12:29

6 ответов

Лучший ответ

Стандарт C ++ допускает взаимозаменяемое использование токена && с токеном and.

Не все компиляторы реализуют это правильно (некоторые вообще не беспокоят, другие требуют включения специального заголовка). Таким образом, код, использующий and, можно считать своеобразным.

Тот факт, что эквивалентность находится на уровне токена, а не на уровне оператора , означает, что, начиная с C ++ 11 (где язык получил ссылочную нотацию rvalue), вы можете упорядочивать вещи (без обращения к препроцессор) так, чтобы оператор

int and _int(string and vector);

- действующий прототип функции. (Это эквивалентно int&& _int(string&& vector).)

2
Bathsheba 12 Июл 2021 в 10:03

Как можно увидеть здесь, это одно и то же.

2
Silidrone 12 Июл 2021 в 09:30

Нет разницы. and - это просто альтернативное название для &&.

См. https://en.cppreference.com/w/cpp/keyword/and.

2
Jarod42 12 Июл 2021 в 09:34

В чем разница между "и" и "&&" в c ++

Основное отличие состоит в том, что and не использует символ &.

В остальном разницы нет.

есть ли какие-то особые условия для его использования?

Наряду с другими альтернативными токенами, такими как орграфы, он существует для того, чтобы позволить писать программы в экзотических системах с кодировкой символов (например, BCD или ISO 646), которые не имеют специальных символов, таких как &.

Если вы не пишете в такой системе, где необходимо использовать альтернативные токены, вы обычно не должны их использовать.

0
eerorika 12 Июл 2021 в 11:23

Оператор and является альтернативой оператору &&.

-1
Jarod42 12 Июл 2021 в 09:47