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

 
Alexey Navoykov:

Да речь не только о языке.

О чем тогда? Сам в состоянии написать несколько пунктов в качестве хотелок. Но не думаю, что их отсутствие мешает сейчас создавать ТС. Возможно, узко смотрю, поэтому спрашиваю.

Фактически только ради облачной оптимизации... Ну и отчасти Маркет.   Но сейчас конечно понимаю, что слишком высокую цену пришлось за это платить (в плане потраченных нервов и времени).  Альтернативные то варианты облачных вычислений есть,  просто всё не соберусь...

Все же могли бы Вы привести какие-то цифры в качестве скоростных показателей Вашего Тестера в мат. режиме?

Видимо, у Вас какие-то совсем тяжелые вычисления. Возможно, используете ГА, которым недовольны.

Сам пользуюсь кастомными символами, и полным перебором. Дольше 10 часов Оптимизации не провожу. Чаще всего - < 10 минут.


ЗЫ Нервов, наверное, потратил минимально. Даже не знаю, где MT5 может заставить складывать маты. Время - только на самообразование, недокументированные вещи и багрепорты. Текущее состояние MT5 много лучше, чем год назад. Что реально не нравится - убили СД-заявки. Расцениваю это, как полное неуважение к чужому труду. Почти каждая заявка - длительная локализация бага с воспроизведением. Все уничтожили, бэкапа не делал.

 

Ошибка при выполнении

void Print( const int& ) { printf( "%s", __FUNCSIG__ ); }
void OnStart()
{
        const int i = 0;
              int j = 0;
        Print( i ); //(1)
        Print( j ); //(2)
}

Результат 1: void Print(const int&)
                2: 0

разный. А какая разница? Ожидался одинаковый

 
A100:

разный. А какая разница? Ожидался одинаковый

По этой причине

void f( const int& ) { printf( "%s", __FUNCSIG__ ); }
void f( int& ) { printf( "%s", __FUNCSIG__ ); }
void OnStart()
{
        const int i = 0;
              int j = 0;
        f( i ); //(1)
        f( j ); //(2)
}
 
fxsaber:

По этой причине

А какая связь с моим примером? Замените Print на Print2 и результат будет одинаковым!

Если Вы не поняли то из моего примера следует, что int i якобы не подходит для Print( const int& )

 
A100:
А какая связь с моим примером? Замените Print на Print2 и результат будет одинаковым!

Прямая связь! Две сигнатуры в исходном примере. Одна из которых штатная.

Заменяя на Print2 получаем только одну сигнатуру, и она будет вызвана дважды.

 
fxsaber:

Прямая связь! Две сигнатуры в исходном примере. Одна из которых штатная.

И какая по Вашему здесь вторая сигнатура? якобы штатная? Неужели такая?
void Print( int& )
 
A100:
И какая по Вашему здесь вторая сигнатура? якобы штатная? Неужели такая?

Сами знаете, что Print - нечто не имеющее аналогов в MQL5 для пользователя. Объяснение дал. Не нравится - на здоровье.

 
fxsaber:

Сами знаете, что Print - нечто не имеющее аналогов в MQL5 для пользователя. Объяснение дал. Не нравится - на здоровье.

Это не объяснение потому что если бы (2) была бы штатной, то следующий пример
#define PRN             { printf( "%s", __FUNCSIG__ ); }
  void Print( const int& ) PRN //(1) //пользовательская
//void Print(       int& )     //(2) //якобы штатная
  void Print(       int& ) PRN //(3) //пользовательская
void OnStart()
{
        const int i = 0;
              int j = 0;
        Print( i );
        Print( j );
}
выдавал бы ошибку ещё на этапе компиляции: (2) и (3) конфликтуют. А все компилируется и выполняется нормально. И в исходном примере в отсутствии void Printint& ), должна вызываться void Print( const int& ), а не штатная void Print(...)
 
A100:
в исходном примере в отсутствии void Printint& ), должна вызываться void Print( const int& ), а не штатная void Print(...)

Не должна.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.09.23 17:08

Сами знаете, что Print - нечто не имеющее аналогов в MQL5 для пользователя.

Не понимаю, зачем из этого делать проблему. Штатный Print имеет черти какую сигнатуру, не укладывающуюся в MQL5-возможности.

 
fxsaber:

Не должна.

Не понимаю, зачем из этого делать проблему. Штатный Print имеет черти какую сигнатуру, не укладывающуюся в MQL5-возможности.

Проблемы нет... есть ошибка. Тоже не понимаю зачем пытаться за уши притянуть объяснение. Штатный Print имеет следующую сигнатуру:

и тоже умеет конфликтовать с другими функциями (если потребуется)

Причина обращения: