Назначение переменной в 1-м условии и использование той же переменной во 2-м условии Хорошо определено? - PullRequest
2 голосов
/ 19 июня 2010

Хорошо ли это определено?

Streamreader ^reader = gcnew Streamreader("test.txt");
String  ^line;

while ((line = reader->ReadLine()) != nullptr && line != "")
{
    //do stuff
}

Я полагаю, что где-то читал, что не гарантируется, что задание будет выполнено до 2-го условия. Может быть, я ошибаюсь или это относится только к C.
Google не помог мне с этим, поэтому я и спрашиваю здесь:)

Ответы [ 2 ]

4 голосов
/ 19 июня 2010

С && и || гарантированно оценивается первое условие (включая присвоение) перед оценкой второго условия.

С побитовыми символами & и |, с другой стороны, такие гарантии не предоставляются.

1 голос
/ 19 июня 2010

Здесь есть связанный ответ с рядом хороших ссылок: Обязательны ли короткие замыкания логических операторов?И порядок оценки?

Краткий ответ, если вы не перегружены && и ||Вы получите оценку короткого замыкания, которая идет слева направо.Взгляните на ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...