Описание тега order-of-evaluation

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

C/C++ Math Порядок работы

Итак, я знаю, что C++ имеет приоритет оператора и что int x = ++i + i++; не определено, потому что pre ++ и post ++ находятся на одном уровне, и, следовательно, нет способа определить, какой из них будет вычислен первым. Но что мне было интересно, е…
2 ответа

c - Почему я = ++ я вызываю неопределенное поведение?

Я понимаю, что C использует понятие точек последовательности для определения неоднозначных вычислений, и что = Оператор не является точкой последовательности. Однако я не вижу никакой двусмысленности в выполнении заявления i = ++i Насколько я понима…
4 ответа

Почему выражение Ruby с двойным амперсандом и оператором return вызывает синтаксическую ошибку

def foo true && return false end def bar true and return false end foo Метод вызывает синтаксическую ошибку. bar не делает. Зачем? Предполагая, что я хочу вычислять однострочники с помощью оператора return (аналогично определенному общеупотр…
6 ответов

Порядок оценки параметров вызова функции в GCC

Когда я гуглил это, у меня всегда были темы о порядке оценки в общем, что порядок оценки не определен. Я знаю, что порядок оценки параметров не указан в C в общем. Мой вопрос - порядок оценки параметров в gcc , слева направо или справа налево? Любые…
04 июн '13 в 16:30
1 ответ

SQL Teradata порядок оценки случая, когда тогда еще

Я хочу выполнить этот запрос на официальном Teradata Express для VMware Player (TDE 15.00.01 SLES 10 для VMware (40 ГБ) с Viewpoint): SELECT 'MaxValue' column_name, COUNT("MaxValue") AS count_value, COUNT(DISTINCT("MaxValue")) AS count_dist_value, M…
18 июн '15 в 09:59
2 ответа

Порядок вычисления в цепочке вызова в C++

Допустим, у нас есть класс A: class A { public: A& func1( int ) { return *this; } A& func2( int ) { return *this; } }; и 2 автономные функции: int func3(); int func4(); теперь в этом коде: A a; a.func1( func3() ).func2( func4() ); порядок оц…
30 июл '15 в 21:33
1 ответ

Каков порядок выполнения C# в вызове функции с ref?

Итак, я только что обнаружил эту ошибку в нашем коде: class A { public int a; } var x = new A(); x.a = 1; A qwe(ref A t) { t = new A(); t.a = 2; return t; } void asd(A m, A n) { Console.WriteLine(m.a); Console.WriteLine(n.a); } asd(x, qwe(ref x)); a…
10 янв '17 в 12:53
5 ответов

Порядок оценки SQL-предложений Oracle

В Oracle, какие типы предложений оцениваются первыми? Если бы у меня было следующее (притвориться.... представляющие допустимые выражения и имена отношений), каков был бы порядок оценки? SELECT ... FROM ..... WHERE ........ GROUP BY ........... HAVI…
16 май '10 в 01:07
2 ответа

Как Java оценивает это утверждение?

У меня есть это выражение в операторе if else if (row % 2 == 0 && col % 2 == 0 || row % 2 == 1 && col % 2 == 1) { return 0; } else { return 1; } который ведет себя как задумано, возвращая 0, когда строка и столбец либо четные, либо н…
4 ответа

Как мне составить Lazy List на нетерпеливом языке?

Я хотел сделать ленивый список в Схеме. Это то, что я до сих пор. ;; Constructor for Pairs (define (cons-stream a b) (cons a (λ() b))) ;; Selectors (define (car-stream a-stream) (car a-stream)) (define (cdr-stream a-stream) ((cdr a-stream))) ;; Lazy…
2 ответа

Порядок указания, что операнды вычисляются в c

Заявление puts("a") + puts("b") не определено Это связано с тем, что в Стандарте C не указано, должны ли они выполняться слева направо или справа налево, чтобы вы могли получить a b или же b a Есть ли чистый способ диктовать порядок операций в выраж…
21 авг '17 в 00:18
3 ответа

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

Определяется ли порядок выполнения в списке инициализации конструктора? Я знаю, что порядок членов в классе - это порядок, в котором эти члены будут инициализированы, но если у меня есть такой сценарий: class X() { X_Implementation* impl_; }; and th…
27 окт '10 в 20:06
15 ответов

Why are these constructs using pre and post-increment undefined behavior?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++); printf("%d\n", i); // 2 Should be 1, no ? volatile int u = 0; u = u++ + ++u; printf("%d\n", u); // 1 u = 1; u = (u++); printf("%d\n", u); /…
3 ответа

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

Документация seq Функция говорит следующее: Примечание о порядке оценки: выражение seq a b не гарантирует, что a будет оцениваться раньше b, Единственная гарантия, предоставленная seq является то, что оба a а также b будет оцениваться раньше seq воз…
1 ответ

Я здесь упускаю что-то простое (приоритет выполнения во время выполнения?)

Выполнение этого простого кода: int foo(int* a){ cout <<"a="<<a; *a=1; cout <<", *a="<<*a<<endl; return 0;} int main () { int* ptr; ptr=new int[2]; ptr[0]=0; ptr[1]=0; cout<< foo(ptr) <<" "<< ptr <&…
1 ответ

Гарантируется ли, что оператор if не будет оцениваться больше, чем необходимо?

Учитывая два условия с && подключение. Я знаю, что порядок оценки слева направо. Но если первое условие разрешается как ложное, второе условие гарантированно не будет оценено? #define SIZE bool array[SIZE]; int index; // play with variables …
1 ответ

Ruby 2.2.4, лексирующий назначение в условном выражении

В чем разница между этими двумя строками кода? a = (b if (b = "test")) a = b if (b = "test") Первый работает нормально и устанавливает оба a а также b в test, но второй выдает ошибку: NameError: неопределенная локальная переменная или метод `b'для m…
3 ответа

Порядок оценки названных параметров

Возможный дубликат: Параметры оцениваются по порядку при передаче в метод? Скажи у меня void foo (int x, int y) и позвоните по: foo(y: genNum(), x: genNum()) Гарантирует ли C# порядок вычисления x и y в этом случае?
27 авг '12 в 19:26
6 ответов

Значение x*f(x) не определено, если f изменяет x?

Я посмотрел на кучу вопросов, касающихся точек последовательности, и не смог выяснить, если порядок оценки для x*f(x) гарантируется, если f модифицирует xи отличается ли это для f(x)*x, Рассмотрим этот код: #include <iostream> int fx(int &…
10 сен '15 в 14:22
3 ответа

Первый левый операнд сломан?

В соответствии с этим здесь левый будет оцениваться до правого... но у меня есть проект, где: int[] df = null; //GetDataFrame() int xIndex = 12; //GetLearningIndex() df[0] = 1 % GetLearningIndex(); и я понял, когда GetDataFrame возвращает ноль, а Ge…
24 апр '17 в 07:17