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

 
Советник
input int i = 0;

void OnInit() {}

Параметры оптимизатора 1595

Brute-оптимизация заняла 5.5 минут, что, мягко говоря, неправильно.

Все логи в приложенном файле. Прошу отписаться, воспроизводится или нет.

Файлы:
Tester.zip  24 kb
 
fxsaber:
1595 - так и не исправили.


Уберите явный Struct cast и все работает.

template <typename T>
T Func(){
  T Res;
  return(Res);
}

template <typename T>
void Func( T& Value ){
  T Res = Value;
}

void OnStart()
{
  Func<string>(); 
  
  MqlTick Tick;
  Func(Tick);
}


 
Sergey Dzyublik:


Уберите явный Struct cast и все работает.

Разработчики подтвердили ошибку в СД. Посмотрите внимательно, кастинга там нет.
 
fxsaber:
Разработчики подтвердили ошибку в СД. Посмотрите внимательно, кастинга там нет.

template <typename T>
void Func( T& Value )
{
  T Res = (MqlTick)Value;
}
Как тогда называется эта операция?
 
Sergey Dzyublik:


Уберите явный Struct cast и все работает.

Эээ два вопроса.

1. что выдаст этот код в лог?

2. как каст соотносится с багом выбора правильной перегрузки функции?

 
На МТ5 1595 32бит работает все на ура (Win7 64бит):


template <typename T>
T Func(){
  T Res;
  Print (__FUNCTION__);
  return(Res);
}

template <typename T>
void Func( T& Value ){
  Print (__FUNCTION__);
  T Res = Value;
}

void OnStart()
{
  Func<string>(); 
  
  MqlTick Tick;
  Func(Tick);
}

Результат:
2017.04.26 14:51:14.834 WebTest (EURUSD,H4) Func<string>
2017.04.26 14:51:14.836 WebTest (EURUSD,H4) Func<MqlTick>


Нету бага с выбором функции, как он может соотносится с тем, что его нет))
 
Sergey Dzyublik:

Как тогда называется эта операция?

Эта операция никак теперь (1589+) не называется. Думаю, когда Вы вникните, откуда здесь Warning

template <typename T>
T Func(){
  T Res;
  return(Res);
}

template <typename T>
void Func( T Value ){
  T Res = (int)Value; // implicit conversion from 'number' to 'string'
}

void OnStart()
{
  Func<string>(); 

  Func(0);
}

тогда поймете, о какой проблеме идет речь.

 

Просьба в логах оптимизатора показывать диапазон и шаг оптимизируемых параметров.

А так же в логах агентов такие строки

NS      0       14:11:00.853    Tester  756 : passed in 0:00:04.789
MJ      0       14:11:03.447    Tester  757 : passed in 0:00:02.574
RM      0       14:11:05.860    Tester  758 : passed in 0:00:02.340

сопровождать информацией по соответствующему прогону - имя советника и его входные параметры.

 
Если здесь удалить строку
#define TYPETOBYTES_FULL_SLOW

то влючаются новые union-ы, увеличивая время компиляции в два раза.

'TypeToBytes_ExampleScript.mq5' TypeToBytes_ExampleScript.mq5
'TypeToBytes.mqh'       TypeToBytes.mqh
0 error(s), 0 warning(s), compile time: 3195 msec

Три секунды на небольшой код - это нормально?

При этом debug-версия

0 error(s), 0 warning(s), compile time: 108 msec

в 30 раз быстрее подготавливается.

Возможно ли быстро компилировать в дебаг-версию, но при этом не запускать саму отладку - для самопроверки?

 

Не знаю как так получилось, но получилось вот так: