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

На любом языке программирования существуют четко определенные правила, определяющие порядок, в котором выражения вычисляются.
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
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
5
ответов

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

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

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

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

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

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

Логическое И, ИЛИ: гарантирована ли оценка слева направо?

Гарантируется ли левая-правовая оценка логических операторов (&& ||)? Скажем, у меня есть это: SDL_Event event; if (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { // do stuff } } Гарантировано ли это как э...
задан 16 апр. '11 в 1:39
5
ответов

Почему '- ++ a- - ++ + b--' оценивается в этом порядке?

Почему следующая печать bD aD aB aA aC aU вместо aD aB aA aC bD aU? Другими словами, почему b-- оценивается до --++a--++? #include <iostream> using namespace std; class A { char c_; public: A(char c) : c_(c) {} A& operator++(...
задан 06 апр. '17 в 21:56
3
ответов

Всегда гарантированный порядок оценки `seq` (со странным поведением` pseq` дополнительно)

Документация функции seq говорит следующее: Примечание по порядку оценки: выражение seq a b не гарантирует, что a будет оцениваться до b. Единственная гарантия, предоставляемая seq, заключается в том, что оба a и b будут оцениваться до того, как ...
задан 23 янв. '18 в 23:28