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

 
fxsaber #:
В свежей библиотеке написал такое.

Это UB?

Нет, но стиль опасный.

 
Vladimir Simakov #:

Every value computation and side effect of the first (left) argument of the built-in logical AND operator &&, the built-in logical OR operator || and the built-in comma operator , is sequenced before every value computation and side effect of the second (right) argument.

Вроде, речь идет не об operator&& , а о &&.
 
Vladimir Simakov #:

Нет, но стиль опасный.

Опасный стиль тоже в команде выпиливаете?

 
Alain Verleyen #:

Ну давай же. MetaQuotes не следует никаким стандартам MQL и, конечно же, C++17. MQL основан на C++, ни больше, ни меньше.

В любом случае, только MetaQuotes может сказать что-то полезное по этому вопросу. Мое мнение: это не ошибка, порядок последовательности не определен, и на него не следует полагаться. Хотя я понимаю вашу логическую точку зрения.

В данном вопросе мы просто не обратили внимание на обновление стандарта C++17, где впервые явно указан порядок исполнения параметров перегруженной операции. До этого был UB

Мы следим за данной дискуссией, но пока ничего не обещаем

 
Slava #:

В данном вопросе мы просто не обратили внимание на обновление стандарта C++17, где впервые явно указан порядок исполнения параметров перегруженной операции. До этого был UB

Просьба привести цитату.

 
fxsaber #:

Опасный стиль тоже в команде выпиливаете?

Не. Это мой личный болезненный опыт)))

mutable data менять либо в loop-statement, либо в  iteration-expression. При смешении, можно много кофе (и не только) выпить, пока найдешь где ты сам себе злобный буратино)))

 
Vladimir Simakov #:

mutable data менять либо в loop-statement, либо в  iteration-expression. При смешении, можно много кофе (и не только) выпить, пока найдешь где ты сам себе злобный буратино)))

Понял, спасибо.

 
fxsaber #:

Просьба привести цитату.

Какую цитату? Различие сохранено только для ленивости - все остальное по общим правилам. Правила меняются не только путем добавления, но и путем исключения старого

 
fxsaber # :

Просьба привести цитату.

Я уже предоставил один.

Вот еще один :


И вы также можете прочитать текущий проект .

Извините, но я не могу предоставить источники на русском языке.

Do overloaded logical operators && and || short-circuit since C++17?
Do overloaded logical operators && and || short-circuit since C++17?
  • 2016.12.19
  • Amir Kirsh Amir Kirsh 13k 43 43 silver badges 79 79 bronze badges
  • stackoverflow.com
Unlike the built-in versions, the overloads do not sequence their left operand before the right one, and (until C++17) cannot implement short-circuit evaluation. Couldn't find any resource or code example for C++17 supporting short-circuit for operator&& and operator||. Is it related to C++17 parameter...
 
A100 #:
Error when running:

What is the fundamental difference between (1) and (2)?


"const" !!!
void  f2(        string  )  export  {} 
//Test.mq5 
#import  "Test2.ex5" 
    void  f2(  const  string  =  "2"  );
 #import
Причина обращения: