Вопросы с тегом 'order-of-evaluation'

На любом языке программирования существуют четко определенные правила, определяющие порядок, в котором выражения вычисляются.
2 отв.

Выполняются ли вызовы функций в списке инициализатора конструктора?

Рассмотрим: int f () { static int i = 0; return i++; } struct Test { int a, b; Test () : a(f()), b(f()) {} }; Test t; Я знаю, что a инициализируется до b из-за порядка их объявления в struct. Я также знаю, что два вызова f в g...
18 апр. '17 в 21:39
3 отв.

Порядок выполнения запроса MySQL/предложения

Каков предопределенный порядок выполнения предложений в MySQL? Некоторые из них были решены во время выполнения, и этот порядок правильный? FROM clause WHERE clause GROUP BY clause HAVING clause SELECT clause ORDER BY clause
09 июня '14 в 22:54
3 отв.

SQL UPDATE порядок оценки

Каков порядок оценки в следующем запросе: UPDATE tbl SET q = q + 1, p = q; То есть, будет ли "tbl"."p" установлено значение q или q + 1? Является ли порядок оценки здесь стандартом SQL? Спасибо. UPDATE После рассмотрения ответа Мигса я провел...
05 февр. '10 в 0:03
6 отв.

"IF" аргумент оценки аргумента?

if(a && b) { do something; } есть ли возможность оценить аргументы справа налево (b → a)? если "да", что влияет на порядок оценки? (я использую VS2008)
28 окт. '11 в 8:26
6 отв.

Является ли этот код четким?

Этот код берется из обсуждения здесь. someInstance.Fun(++k).Gun(10).Sun(k).Tun(); Является ли этот код четким? Является ли ++k в Fun() оцененным до k в Sun()? Что делать, если k является определяемым пользователем типом, а не встроенным типом? ...
17 янв. '11 в 6:17
5 отв.

Являются ли равные тайм-ауты, выполненные в Javascript?

Предположим, что я setTimeout(foo, 0); ... setTimeout(bar, 0); Могу ли я быть уверенным, что foo начнет выполнение перед баром? Что, если вместо 0 я использую тайм-аут 1, 10 или 100 для бара? Простые эксперименты показывают, что в случае равных...
21 нояб. '09 в 21:08
1 отв.

Что оценит я ++ + я ++ в С++ 17?

Похоже, мы получаем совершенно новую породу "вопросов интервью" для С++ (надеюсь, на самом деле нет). Известно, что поведение undefined до С++ 17, но будет ли оно корректно определено из С++ 17? Поскольку на данный момент не существует компилятора...
30 сент. '16 в 20:21
5 отв.

С++ постфиксное выражение undefined против неопределенного поведения

Извиняюсь заранее, я знаю, что общая тема оценочного порядка уже много вопросов SO. Однако, взглянув на них, я хочу прояснить несколько конкретных моментов, которые, как я думаю, не означает дублирование чего-либо. Предположим, у меня есть следующий ...
20 мая '16 в 13:31
2 отв.

Перенос семантики и порядка оценки аргументов

Учитывая следующее: std::string make_what_string( const std::string &id ); struct basic_foo { basic_foo( std::string message, std::string id ); }; struct foo : public basic_foo { foo::foo( std::string id) : basic_foo( make_...
28 марта '13 в 14:22
2 отв.

Можно ли полагаться на порядок оценки аргументов функции Python?

Можно ли предположить, что аргументы функции оцениваются слева направо в Python? Ссылка указывает, что так происходит, но, возможно, есть способ изменить этот порядок, который может нарушить мой код. Что я хочу сделать, так это добавить отметку вре...
30 июля '13 в 16:26
5 отв.

При использовании удвоений, почему (x/(y * z)) не совпадает (x/y/z)?

Это отчасти академично, поскольку для моих целей мне нужно только округлить до двух знаков после запятой; но я очень хочу знать, что происходит, чтобы произвести два немного разных результата. Это тест, который я написал, чтобы сузить его до самой п...
24 апр. '15 в 11:01
2 отв.

будучи уверенным в "неизвестном порядке оценки"

Начиная с версии 1.80, Cppcheck сообщает мне, что Выражение 'msg [ipos ++] = контрольная сумма (& msg [1], ipos-1)' зависит от порядка оценки побочных эффектов в этой кодовой последовательности (упрощенный, data - переменная) BYTE msg[MAX_M...
29 авг. '17 в 14:22
1 отв.

Порядок оценки элементов в инициализации списка

В другой теме, @Dietmar дал это решение: template <typename... T> std::tuple<T...> parse(std::istream& in) { return std::tuple<T...>{ T(in)... }; } указав, что Использование инициализации скобок работает, потому что ...
27 дек. '12 в 22:37
2 отв.

Порядок оценки аргументов функции и аргументов по умолчанию

Недавно я столкнулся со следующей ситуацией: #include <iostream> int *p = 0; int f() { p = new int(10); return 0; } void g(int x, int *y = p) { std::cout << y << std::endl; } int main() { g(f()); } Это довольн...
26 авг. '15 в 12:09
8 отв.

Потенциальная проблема в "Обмен значениями двух переменных без использования третьей переменной"

Недавно я пришел к этому методу для замены значений двух переменных без использования третьей переменной. a^=b^=a^=b Но когда я попробовал вышеуказанный код на разных компиляторах, я получил разные результаты, некоторые дали правильные результаты,...
18 сент. '10 в 14:08