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

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

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

Можно ли определить порядок выполнения в списке инициализации конструктора? Я знаю, что порядок членов в классе - это порядок, в котором эти члены будут инициализированы, но если у меня есть сценарий вроде этого: class X() { X_Implementation* impl_;...
27 окт. '10 в 23:06
1 отв.

Перечисление элементов списка в python, где выражения содержат вызовы функций

если arr = [4,3,2,1] и я хочу поменять первое значение с минимумом массива, если я использую это на python arr[0] , arr[arr.index(min(arr))] = min(arr) , arr[0] #or arr[0] , arr[arr.index(min(arr))] = arr[arr.index(min(arr))] , arr[0] они не р...
16 авг. '18 в 21:37
6 отв.

Как доказать, что оценка параметра "слева направо" в Python?

Например, в JavaScript мы могли бы написать такую ​​программу: var a = 1; testFunction(++a, ++a, a); function testFunction(x, y, z){ document.writeln("<br />x = " + x); document.writeln("<br />y = " + y); document.write...
05 окт. '12 в 18:18
2 отв.

Порядок оценки в вызове цепи в С++

Скажем, у нас есть класс 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() )...
31 июля '15 в 0:33
2 отв.

Mathematica - почему TreeForm [Unevaluated [4 ^ 5]] оценивает 4 ^ 5?

Если я дам Mathematica вход TreeForm[Unevaluated[4^5]] Я ожидаю увидеть три коробки - мощность, 4 и 5. Вместо этого я вижу одно окно с 1024. Может ли кто-нибудь объяснить?
20 апр. '11 в 0:03
2 отв.

Является ли этот код четко определенным?

Я подозреваю, что следующая цепочка функций приведет к неуказанной последовательности в соответствии со стандартами С++ (предположим, С++ 0x). Просто хочу подтверждение, и если кто-нибудь может дать объяснение, я был бы признателен. #include <ios...
14 июля '11 в 4:03
6 отв.

a + = a ++ * a ++ * a ++ в Java. Как он оценивается?

Я столкнулся с этой проблемой на этом веб-сайте и попробовал ее в Eclipse, но не мог понять, как именно они оцениваются. int x = 3, y = 7, z = 4; x += x++ * x++ * x++; // gives x = 63 System.out.println(x); y = y * y++; System...
14 нояб. '12 в 0:46
2 отв.

Почему порядок оценки отличается для Коллекций, чем для других типов, используя условный оператор

При попытке реализовать переопределение GetHashCode аналогично предложению Jon Skeet в Каков наилучший алгоритм для переопределенного System.Object.GetHashCode? Я заметил некоторое нечетное поведение в порядок оценки, который вызывает синтаксическую ...
22 дек. '13 в 16:33
0 отв.

Существуют ли новые гарантии относительно оценки аргументов функции в С++ 17?

В своем разговоре о CppCon 2014 года ведущий Jon Kalb показывает следующий вызов функции: FooBar( smart_ptr<Foo>( new Foo( f ) ), smart_ptr<Bar>( new Bar( b ) ) ); Под заголовком "Умный указатель" Gotcha "он заключает, что эт...
28 сент. '17 в 17:35
1 отв.

Порядок выполнения в присвоении переменной SQL Server с использованием SELECT

В следующем примере: declare @i int select @i = 1, @i = 2 select @i Будет ли @i всегда быть 2? Это о самом тривиальном примере, о котором я могу думать, но я рассматриваю его использование для обмена значениями в переменных. Я также считаю, что ...
14 февр. '13 в 23:58
5 отв.

Как работают операторы С++

Учитывая, что x = 2, y = 1 и z = 0, что отобразит следующий оператор? printf("answer = %d\n", (x || !y && z)); Это было на викторине, и я понял, что неправильно, я не помню, как мой профессор покрыл это, кто-то просветил меня, пожалуйста.....
28 сент. '10 в 6:10
7 отв.

Функция передачи аргументов в обратном порядке

Вот моя функция: void abc(char *def, unsigned int w, unsigned int x, unsigned int y, unsigned int z) { printf("val 1 : %d\n", w); printf("val 2 : %d\n", x); printf("val 3 : %d\n", y); printf("val 4 : %d\n", z); } и здесь я вызываю эт...
02 окт. '10 в 8:57
4 отв.

Неоценимая форма [[i]]

Рассмотрим следующий простой иллюстративный пример cf = Block[{a, x, degree = 3}, With[{expr = Product[x - a[[i]], {i, degree}]}, Compile[{{x, _Real, 0}, {a, _Real, 1}}, expr] ] ] Это один из возможных способов передачи кода в тело опера...
05 янв. '12 в 14:24
1 отв.

Порядок оценки в emacs lisp

Я пытаюсь написать некоторый мой первый код в emacs lisp, и я не могу понять следующее поведение (defun sq (x) (* x x)) (member 9 '(1 2 3 4 (sq 3))) Это оценивается как nil, но ожидаемое значение я было (9) Теперь я предполагаю, что * emacs l...
25 июня '12 в 21:21
2 отв.

С++ порядок оценки между инициализатором с равным или равным значением и списком инициализации?

Если у меня есть эта структура, struct AAA { AAA() : bbb(2) { // ccc ??? } int bbb = 1; int ccc = bbb; }; AFAIK, если есть список инициализации :bbb(2), выражение bbb = 1 будет проигнорировано. И затем, это неопредел...
30 нояб. '13 в 20:42