Таких конструкций нужно избегать. Порядок выполнения операндов в C++ не регламентирован, поэтому всё на усмотрение конкретного компилятора. Исключение - операторы && и ||, где операнды всегда выполняются слева направо.
Таких конструкций нужно избегать. Порядок выполнения операндов в C++ не регламентирован, поэтому всё на усмотрение конкретного компилятора. Исключение - операторы && и ||, где операнды всегда выполняются слева направо.
Здравствуйте. Подскажите пожалуйста с помощью каких функций можно получить список индикаторов, отображаемых на графике и их параметров? Я нашел только функцию. которая возвращает количество индикаторов на графике
У каждого графика можно посмотреть списки наложенных объектов: индикаторов, аналитических объектов и советников. Там же можно можно редактировать их свойства и удалять их с графика. Список индикаторов Индикаторы сгруппированы на наложенные на основное окно графика и на те, что открыты в отдельных окнах. Выберите индикатор и нажмите "Свойства...
Здравствуйте. Подскажите пожалуйста с помощью каких функций можно получить список индикаторов, отображаемых на графике и их параметров? Я нашел только функцию. которая возвращает количество индикаторов на графике
Задание препроцессорных директив в одну строку - скоро отключат, правда.
Выполнение операндов слева направо.
OrderSend в 99% случаев синхронизирован с торговым окружением.
ChartApplyTemplate асинхронен.
и очень много всяких других недокументированных нюансов. А ведь есть еще случаи, когда документация не соответствует реальности. И это не баг, а редка фича, о которой просто не упоминается.
Прецедент был - отказ от кастинга, но там причина была.
Поэтому что-то не использовать лишь потому, что не описано - сомнительное решение.
Думаю, такой код не вызвал бы у программеров сомнений
int Replace( double &Array[], int );
return(prev_calculated + Replace(Buffer, CopyBuffer(handleMA, 0, prev_calculated, rates_total - prev_calculated, Buffer)));
Однако, это как-то некрасиво. Логично писать MyCopyBuffer, но доходчиво показать в коротком коде, что это нужно для обхода бага - опять же некрасиво. Поэтому использование недокументированного приоритета выполнения операндов - самое то, чтобы показать, что это временное решение.
Не могу понять, почему при выполнении возникает ошибка "invalid pointer access". Вроде, все чисто должно быть. Win7x64.
32bit рулит. Для 64bit нужны лишние телодвижения:
class A { public:
A *operator +( A *a ) { return a; }
};
static A a;
int f( int i ) { Print( __FUNCTION__, ":", i ); return0; }
A *g( int i ) { Print( __FUNCTION__, ":", i ); return &a; }
voidOnStart()
{
int i = f(1) + f(2) + f(3); //слева направо 1-2-3
A *a = g(1) + g(2) + g(3); //справа налево 3-2-1
}
Таких конструкций нужно избегать. Порядок выполнения операндов в C++ не регламентирован, поэтому всё на усмотрение конкретного компилятора. Исключение - операторы && и ||, где операнды всегда выполняются слева направо.
Таких конструкций нужно избегать. Порядок выполнения операндов в C++ не регламентирован, поэтому всё на усмотрение конкретного компилятора. Исключение - операторы && и ||, где операнды всегда выполняются слева направо.
Ну так мы же в MQL!
Ну так мы же в MQL!
В документации нигде не сказано о каком-то конкретном порядке. Поэтому они могут его поменять по собственному усмотрению в любой момент.
Я уже однажды обращался в сервис-деск для прояснения этого вопроса.
Здравствуйте. Подскажите пожалуйста с помощью каких функций можно получить список индикаторов, отображаемых на графике и их параметров? Я нашел только функцию. которая возвращает количество индикаторов на графике
Здравствуйте. Подскажите пожалуйста с помощью каких функций можно получить список индикаторов, отображаемых на графике и их параметров? Я нашел только функцию. которая возвращает количество индикаторов на графике
IndicatorParameters (+ IndicatorRelease)
В документации нигде не сказано о каком-то конкретном порядке. Поэтому они могут его поменять по собственному усмотрению в любой момент.
Не заморачиваюсь по этому поводу. Очень многое там не описано
Навскиду
Прецедент был - отказ от кастинга, но там причина была.
Поэтому что-то не использовать лишь потому, что не описано - сомнительное решение.
Думаю, такой код не вызвал бы у программеров сомнений
Однако, это как-то некрасиво. Логично писать MyCopyBuffer, но доходчиво показать в коротком коде, что это нужно для обхода бага - опять же некрасиво. Поэтому использование недокументированного приоритета выполнения операндов - самое то, чтобы показать, что это временное решение.
Порядок выполнения операндов в C++ не регламентирован, поэтому всё на усмотрение конкретного компилятора.
Порядок вычисления операндов не может быть регламентирован потому что зависит от контекста
Если его строго регламентировать - то в одном из 2-х случаев будет потеряна эффективностьПорядок вычисления операндов не может быть регламентирован потому что зависит от контекста
Если его строго регламентировать - то в одном из 2-х случаев будет потеряна эффективностьОтличный пример!
Не могу понять, почему при выполнении возникает ошибка "invalid pointer access". Вроде, все чисто должно быть. Win7x64.
Не могу понять, почему при выполнении возникает ошибка "invalid pointer access". Вроде, все чисто должно быть. Win7x64.
32bit рулит. Для 64bit нужны лишние телодвижения:
32bit рулит. Для 64 - нужны лишние телодвижения
Похоже, оптимизатор мудрствует.