Его нет, но он вызывается на return-е из параметрического конструктора.
Во всяком случае встроенный отладчик "показывает" его исполнение. Нажмите F11 на "выходной фигурной скобке" параметрического конструктора ...
С строке 76 приведённого кода из-за ошибки в компиляторе создаётся неявный (безымянный) объект clTuneParam - для этого объекта и вызывается деструктор.
Если хотите перепроверить мои слова, то наследуйте clTuneParam от
class A
{
public:
A() { Print("A created ",&this); }
~A() { Print("A destroyed ",&this); }
};
В логе вы увидите, сколько объектов A было создано и когда они уничтожены (раскомментируйте удаление AdaptiveTrade в коде)
UPD: создайте отдельную функцию инициализации и вызывайте её из параметрического и дефолтного контрукторов - так будет надёжнее и понятнее по коду.
С строке 76 приведённого кода из-за ошибки в компиляторе создаётся неявный (безымянный) объект clTuneParam - для этого объекта и вызывается деструктор.
Если хотите перепроверить мои слова, то наследуйте clTuneParam от
В логе вы увидите, сколько объектов A было создано и когда они уничтожены (раскомментируйте удаление AdaptiveTrade в коде)
UPD: создайте отдельную функцию инициализации и вызывайте её из параметрического и дефолтного контрукторов - так будет надёжнее и понятнее по коду.
Да я не спорю. Уж Вам то точно виднее... Я же не вижу что "внутри" происходит. "Споткнулся" об это - написал. Глубокую трассировку не делал, да и к тому же отладчик не штатно работает и времени не было. Обошёл этот нюанс просто убрав вложенные вызовы...
Не думал, что Вы так быстро отреагируете. Спасибо что откликнулись.
По потреблению памяти. Возможно ли в TaskManager отдельно показывать, сколько и какие кеши потребляют память? Особенно это касается CopyTicks-кешей.
TERMINAL_MEMORY_USED = 3277 MB.
3 Гб съедает Терминал. Единственная возможность - это кеши CopyTicks. И это при том, что за несколько суток ни разу не сделал запрос дальше, чем на пять последних тиков.
Зачем такое потребление?!
MQL_MEMORY_USED = 10 MB
10 Мб потребляет советник. Подсчитал честно объем всех переменных и массивов (включая резервные места). Не вышло более 2.5 Мб. Значит остальное - это системные кеши (для HistorySelect и других). Как-то возможно это отразить в TaskManager?
Возможно ли будет в TaskManager сбрасывать некоторые кеши?
Про Alt-G в метаэдиторе... Понимаю, что задача скорее всего не в высоком приоритете, но все же отсутствие этой функции портит жизнь.
Alt-G не работает в случаях:
Когда вы в одном mqh файле, а определение объекта/переменной в другом;
Когда переменная/объект в одном и том же mqh-файле, но используется template (причем он как-то выборочно влияет на файл). И касается это не только объектов, завернутых в template, но и тех, что описаны в этом же самом файле.
Про Alt-G в метаэдиторе... Понимаю, что задача скорее всего не в высоком приоритете, но все же отсутствие этой функции портит жизнь.
Alt-G не работает в случаях:
Когда вы в одном mqh файле, а определение объекта/переменной в другом;
Когда переменная/объект в одном и том же mqh-файле, но используется template (причем он как-то выборочно влияет на файл). И касается это не только объектов, завернутых в template, но и тех, что описаны в этом же самом файле.
Если запрос из *.mq5 в *.mqh - то да, а вот обратно у меня не работает, и никогда не работал, кстати... Видел в чужом коде прием с пустым объявлением объектов в начале файла, но он у меня тоже не заработал.
Vladimir Belozercev: Если запрос из *.mq5 в *.mqh - то да, а вот обратно у меня не работает, и никогда не работал, кстати... Видел в чужом коде прием с пустым объявлением объектов в начале файла, но он у меня тоже не заработал.
Объявление должно быть выше по коду (может быть в инклуде, но тоже выше), естественно.
Его нет, но он вызывается на return-е из параметрического конструктора.
Во всяком случае встроенный отладчик "показывает" его исполнение. Нажмите F11 на "выходной фигурной скобке" параметрического конструктора ...
С строке 76 приведённого кода из-за ошибки в компиляторе создаётся неявный (безымянный) объект clTuneParam - для этого объекта и вызывается деструктор.
Если хотите перепроверить мои слова, то наследуйте clTuneParam от
В логе вы увидите, сколько объектов A было создано и когда они уничтожены (раскомментируйте удаление AdaptiveTrade в коде)
UPD: создайте отдельную функцию инициализации и вызывайте её из параметрического и дефолтного контрукторов - так будет надёжнее и понятнее по коду.
С строке 76 приведённого кода из-за ошибки в компиляторе создаётся неявный (безымянный) объект clTuneParam - для этого объекта и вызывается деструктор.
Если хотите перепроверить мои слова, то наследуйте clTuneParam от
В логе вы увидите, сколько объектов A было создано и когда они уничтожены (раскомментируйте удаление AdaptiveTrade в коде)
UPD: создайте отдельную функцию инициализации и вызывайте её из параметрического и дефолтного контрукторов - так будет надёжнее и понятнее по коду.
Да я не спорю. Уж Вам то точно виднее... Я же не вижу что "внутри" происходит. "Споткнулся" об это - написал. Глубокую трассировку не делал, да и к тому же отладчик не штатно работает и времени не было. Обошёл этот нюанс просто убрав вложенные вызовы...
Не думал, что Вы так быстро отреагируете. Спасибо что откликнулись.
По потреблению памяти. Возможно ли в TaskManager отдельно показывать, сколько и какие кеши потребляют память? Особенно это касается CopyTicks-кешей.
3 Гб съедает Терминал. Единственная возможность - это кеши CopyTicks. И это при том, что за несколько суток ни разу не сделал запрос дальше, чем на пять последних тиков.
Зачем такое потребление?!
10 Мб потребляет советник. Подсчитал честно объем всех переменных и массивов (включая резервные места). Не вышло более 2.5 Мб. Значит остальное - это системные кеши (для HistorySelect и других). Как-то возможно это отразить в TaskManager?
Возможно ли будет в TaskManager сбрасывать некоторые кеши?
Про Alt-G в метаэдиторе... Понимаю, что задача скорее всего не в высоком приоритете, но все же отсутствие этой функции портит жизнь.
Alt-G не работает в случаях:
Про Alt-G в метаэдиторе... Понимаю, что задача скорее всего не в высоком приоритете, но все же отсутствие этой функции портит жизнь.
Alt-G не работает в случаях:
Выделенное работает. Постоянно пользуюсь.
Выделенное работает. Постоянно пользуюсь.
Если запрос из *.mq5 в *.mqh - то да, а вот обратно у меня не работает, и никогда не работал, кстати... Видел в чужом коде прием с пустым объявлением объектов в начале файла, но он у меня тоже не заработал.
Объявление должно быть выше по коду (может быть в инклуде, но тоже выше), естественно.
SYMBOL_MARGIN_INITIAL всё время выдаёт 0.0 , при том, что спецификация выдаёт маржу:
Код:
SYMBOL_MARGIN_INITIAL всё время выдаёт 0.0 , при том, что спецификация выдаёт маржу:
Код:
Это только коэффициенты при марже, а само-то значение в спеке не указано.