Это понятно. Спрашивал не про обход этой ситуации, а про правильный ее синтаксис, чтобы ошибку не выдавал компилятор. Думаю, это возможно на C++ и, скорее всего, на MQL5.
Запускаем Оптимизацию. По коду видно, что все проходы должны прерваться по ExpertRemove. Но этого не происходит:
Core 5 pass 8 tested with error "expert removed itself in global initialization function"in0:00:00.312Core 5 pass 9 returned result 331851.00in0:00:00.125
Core 4 pass 6 tested with error "expert removed itself in global initialization function"in0:00:00.265Core 4 pass 7 returned result 331851.00in0:00:00.140
Core 1 pass 0 tested with error "expert removed itself in global initialization function"in0:00:00.312Core 1 pass 1 returned result 331851.00in0:00:00.125
Core 3 pass 4 tested with error "expert removed itself in global initialization function"in0:00:00.296Core 3 pass 5 returned result 331851.00in0:00:00.156
Core 8 pass 2 tested with error "expert removed itself in global initialization function"in0:00:00.265Core 8 pass 3 returned result 331851.00in0:00:00.140
Tester optimization finished, total passes 10
Statistics optimization done in0 minutes 01 seconds
Statistics shortest pass 0:00:00.125, longest pass 0:00:00.156, average pass 0:00:00.137
Statistics local 10 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Половина проходов проигнорировали ExpertRemove. Воспроизводится?
ЗЫ Это приводит к расхождениям одиночных проходов и оптимизационных.
по сути это то же самое что одна функция с дефолтным параметром. обычно это так и решается, так что это не обход и не костыль а вполне нормальное решение.
по сути это то же самое что одна функция с дефолтным параметром. обычно это так и решается, так что это не обход и не костыль а вполне нормальное решение.
Вариант перегрузки понятен. Но для каждой функции создавать такое - не гибко совсем. Неужели и в C++ нельзя сделать красиво?
или вы указываете явно все праметры, или не указываете.
Вроде, полная однозначность в коде. T2 - int, T1 - double.
Вроде, полная однозначность в коде. T2 - int, T1 - double.
да. это неважно, все равно надо указывать оба параметра
да. это неважно, все равно надо указывать оба параметра
Не догадался, Спасибо!
Как добиться дефолтного значения для входного параметра функции?
Как добиться дефолтного значения для входного параметра функции?
перегрузкой?
Это понятно. Спрашивал не про обход этой ситуации, а про правильный ее синтаксис, чтобы ошибку не выдавал компилятор. Думаю, это возможно на C++ и, скорее всего, на MQL5.
Запускаем Оптимизацию. По коду видно, что все проходы должны прерваться по ExpertRemove. Но этого не происходит:
Половина проходов проигнорировали ExpertRemove. Воспроизводится?
ЗЫ Это приводит к расхождениям одиночных проходов и оптимизационных.
по сути это то же самое что одна функция с дефолтным параметром. обычно это так и решается, так что это не обход и не костыль а вполне нормальное решение.
по сути это то же самое что одна функция с дефолтным параметром. обычно это так и решается, так что это не обход и не костыль а вполне нормальное решение.
Вариант перегрузки понятен. Но для каждой функции создавать такое - не гибко совсем. Неужели и в C++ нельзя сделать красиво?
Вариант перегрузки понятен. Но для каждой функции создавать такое - не гибко совсем. Неужели и в C++ нельзя сделать красиво?
хз, с++ с константами гибче, но именно с указателями функций в качестве параметров по умолчанию я не работал
UPD g++ кушает ваш код на ура