Ошибки, баги, вопросы - страница 2117

 
A100:

К Вам аналогичный вопрос https://www.mql5.com/ru/forum/1111/page2037#comment_5842347

Там была однозначность.

 
fxsaber:

Там была однозначность.

Какая однозначность, если порядок вычисления операндов неопределен?

 
A100:

Какая однозначность, если порядок вычисления операндов неопределен?

Когда неопределен, тогда и не использую. А когда определен - использую.

Даблы складываются слева-направо. Ничего здесь не поменяют.
 
fxsaber:

Когда неопределен, тогда и не использую. А когда определен - использую.

Неопределен в том смысле что не документирован и в любой момент поменять могут. А если был бы документирован, то и документацию поменять не проблема

 
A100:

Неопределен в том смысле что не документирован и в любой момент поменять могут. А если был бы документирован, то поменять документацию

fxsaber:

Даблы складываются слева-направо. Ничего здесь не поменяют.

 
A100:

3. Я предлагал запретить компилятору менять порядок вычисления аргументов для функций без inline 

5. Порядок вычисления определяется реализацией (компилятором) и он вполне конкретный (либо справа налево, либо слева направо), а здесь например:

вообще не понятно какой порядок 2-1-3 или 2-3-1 или какой еще

Результат:   5041:0:5041

Ожидалось:      0:0:5041       слева направо или

                   5041:0:0            справа налево

Он конкретный в конкретной ситуации. Вы не можете рассчитывать, что так будет всегда, поскольку стандарт этого не гарантирует.

Он легко может измениться, если компилятор вдруг решит сделать Вашу функцию встроенной, или Вы измените соглашение о вызове, или по другим причинам.

 
как можно использовать 
ObjectsTotal(OBJ_BUTTON)

например. если при переборе нам нужно выбрать объект по имени

 k=ObjectsTotal(OBJ_BUTTON);
   for(i=0; i<k; i++)
     {

      if(StringFind(ObjectName(i),Name+"LINEORDER"))
}

но в списке всех объектов он не под номер 0,1,2,3 а может быть под номер 0,10,38,45.....

?

 
 
Hello. What ea you mean? 
 
Причина обращения: