Владимир, где Вы берете такие схемы?, мне помогли тогда, в моей теме по поиску баров, минимальным циклом, где-то есть готовые образы? я самоучка, в другом профиле изначально
просто так собирать логические схемы, складывать, прокручивать в циклах...
Память выделена, деструктор при ее освобождении вызван (что про ожидаемое, в соответствии с RAII, поведение, как бы намекает), а вот конструктор при создании объекта, вызвать забыли)))
Владимир, где Вы берете такие схемы?, мне помогли тогда, в моей теме по поиску баров, минимальным циклом, где-то есть готовые образы? я самоучка, в другом профиле изначально
просто так собирать логические схемы, складывать, прокручивать в циклах...
Не надо такое, из готового, без понимания использовать. При таких записях, если требуется что-то чуть сложнее, чем тут, багов, не всегда легконаходимых, налепить влет можно)))
Не надо такое, из готового, без понимания использовать. При таких записях, если требуется что-то чуть сложнее, чем тут, багов, не всегда легконаходимых, налепить влет можно)))
ваши поиски баров, были с перечислениями и шаблонами))
шаблоны откладывал на почти никогда изучение, но вникнул буквально за час.
из кода убрал их себе, вместе с перечислениями, у вас видимо была более серьезная задача их использовать
Память выделена, деструктор при ее освобождении вызван (что про ожидаемое, в соответствии с RAII, поведение, как бы намекает), а вот конструктор при создании объекта, вызвать забыли)))
Спасибо за сообщение. Исправил.
Данный код будет выдавать ошибку компиляции, т.к. инит-последовательности в MQL пока неполноценные.
Для структур, инициализация последовательностью не заменяется на вызов конструктора с соответствующими параметрами - мы планируем это добавить (пока отложено на неопределённый срок, но часть нового кода "просочилась" в продакт).
Вы сами 4ую ошибку сообщили. А чем ZeroMemory хуже {} ? Т.е. имеем некий несанкционированный механизм доступа к private, который компилятор почему то не обнаруживает.
Расчет на то, что Разработчики не будут это исправлять? Когда то компилятор и на ZeroMemory не реагировал
Если вспомнить, что mql порожден от C++, то там оба эти примера (их аналоги) хорошо работают, потому что в этих классах нет конструкторов (т.е. есть имплицитный конструктор):
Объявление ClassX x[n]={}; приводит к value-initialization каждого элемента массива.
Если у ClassX нет пользовательских конструкторов (но есть неудаленный конструктор по умолчанию), то производится zero-initialization объектов класса - независимо от наличия private полей.
Но если есть const поля, то ктор по умолчанию будет неявно удален, поэтому ошибка компилятора.
Пример в C++:
#include <iostream>
usingnamespace std;
class X
{
int a;
public:
intget(){return a;}
//X(){} //так массив x не обнуляется//а если нет конструктора - то обнуляется
};
int main()
{
X x[10]={};
for (int i=0; i<10;i++) cout<<x[i].get()<<endl;
}
Так что если в структуре /классе нет const полей, то логика работы корректная.
Не встречал ранее такой записи.
Пользуйся)))
Пользуйся)))
Владимир, где Вы берете такие схемы?, мне помогли тогда, в моей теме по поиску баров, минимальным циклом, где-то есть готовые образы? я самоучка, в другом профиле изначально
просто так собирать логические схемы, складывать, прокручивать в циклах...Так это же баг лютый. Пример:
Память выделена, деструктор при ее освобождении вызван (что про ожидаемое, в соответствии с RAII, поведение, как бы намекает), а вот конструктор при создании объекта, вызвать забыли)))
Это 2ая {} ошибка
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
A100, 2021.11.16 13:43
F5 подвисает. Кроме того, это противоречивый обход конструктора
Напомню: 1ая с подвисанием, 3я с union
Пользуйся)))
Владимир, где Вы берете такие схемы?, мне помогли тогда, в моей теме по поиску баров, минимальным циклом, где-то есть готовые образы? я самоучка, в другом профиле изначально
просто так собирать логические схемы, складывать, прокручивать в циклах...Не надо такое, из готового, без понимания использовать. При таких записях, если требуется что-то чуть сложнее, чем тут, багов, не всегда легконаходимых, налепить влет можно)))
Не надо такое, из готового, без понимания использовать. При таких записях, если требуется что-то чуть сложнее, чем тут, багов, не всегда легконаходимых, налепить влет можно)))
ваши поиски баров, были с перечислениями и шаблонами))
шаблоны откладывал на почти никогда изучение, но вникнул буквально за час.
из кода убрал их себе, вместе с перечислениями, у вас видимо была более серьезная задача их использовать
--
add
это все на форуме, просто спасибо.
Так это же баг лютый. Пример:
Память выделена, деструктор при ее освобождении вызван (что про ожидаемое, в соответствии с RAII, поведение, как бы намекает), а вот конструктор при создании объекта, вызвать забыли)))
Спасибо за сообщение.
Исправил.
Данный код будет выдавать ошибку компиляции, т.к. инит-последовательности в MQL пока неполноценные.
Для структур, инициализация последовательностью не заменяется на вызов конструктора с соответствующими параметрами - мы планируем это добавить (пока отложено на неопределённый срок, но часть нового кода "просочилась" в продакт).
@A100
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
A100, 2021.11.16 13:43
Смысла нет, потому что:
F5 подвисает. Кроме того, это противоречивый обход конструктора
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2021.11.17 02:07
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
A100, 2021.11.17 02:20
Вы сами 4ую ошибку сообщили. А чем ZeroMemory хуже {} ? Т.е. имеем некий несанкционированный механизм доступа к private, который компилятор почему то не обнаруживает.
Расчет на то, что Разработчики не будут это исправлять? Когда то компилятор и на ZeroMemory не реагировал
Если вспомнить, что mql порожден от C++, то там оба эти примера (их аналоги) хорошо работают, потому что в этих классах нет конструкторов (т.е. есть имплицитный конструктор):
Пример в C++:
Так что если в структуре /классе нет const полей, то логика работы корректная.
Не встречал ранее такой записи.
посмотрел на свои изыскания в MQL5, бывает и хуже, я даже так историю в индикаторе по нескольким ТФ подкачиваю:
в оператор for много что можно записать )))