Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий - страница 29

 

Тык по изображению, для воспроизведения gif анимации.

Повторить отладку можно только если закрыть окно визуализатора. Раньше такого не было. Можно-ли надеяться, что исправят в ближайшем будущем?

 

Мои окна визуализации были закрыты - как я уже писал - я закрыл терминал и редактор. Мне пришлось сохранить советник «под другим именем», чтобы вернуть отладчик!

My Visualize windows has been closed - as I posted - I shut down the terminal and the editor. I had to save the EA 'under a different name' to get back the debugger!

 
Carl Schreiber:

Мои окна визуализации были закрыты - как я уже писал - я закрыл терминал и редактор. Мне пришлось сохранить советник «под другим именем», чтобы вернуть отладчик!

My Visualize windows has been closed - as I posted - I shut down the terminal and the editor. I had to save the EA 'under a different name' to get back the debugger!

Это давно известная проблема, с каждым новым билдом MT5 она проявляется все чаще. От разработчиков либо хамство в ответ, либо тишина.

Я про это писал еще во времена, когда servicedesk принимал запросы про баги в терминале, а не только по вопросам денег и продаж.

 

Давний баг компилятора:

template<typename T>
void f(T *a)
{ 
  T *b = a;  // 'A' - undeclared identifier
}

void OnStart()
{
  class A { };
  A* a;
  f(a);
}

Если по каким-то причинам устранить это баг пока невозможно, то сделайте, пожалуйста, чтоб хотя бы ошибка выдавалась по месту вызова шаблона, а не внутри.  Иначе очень трудно бывает обнаружить источник проблемы.   Когда один шаблон вызывает другой, и так по цепочке, а потом компилятор выдаёт ошибку где-то в недрах библиотек.

 

компилятор не экстрасенс и тут нет ни чего странного, функция находится за областью видимости, где создан класс "A" и функция не понимает какой тип она обрабатывает

как решение, вынести объявление класса на уровень, который будет виден функции и она узнает о этом типе данных (точнее о его свойствах, методах), по другому это просто не понятный тип

class A { };

template<typename T>
void f(T *a)
{ 
  T *b = a;  // 'A' - undeclared identifier
}

void OnStart()
{
  A* a;
  f(a);
}
 
Konstantin:

компилятор не экстрасенс и тут нет ни чего странного, функция находится за областью видимости, где создан класс "A" и функция не понимает какой тип она обрабатывает

как решение, вынести объявление класса на уровень, который будет виден функции и она узнает о этом типе данных (точнее о его свойствах, методах), по другому это просто не понятный тип

Спасибо, кэп, но я не нуждался ни в объяснении, ни в решении.  Речь шла о необходимости указании компилятором места вызова шаблона, чтобы можно было локализовать проблему.  Пока баг не пофиксят, нужно как-то с ним уживаться хотя бы в комфорте.

 
Alexey Navoykov:

Спасибо, кэп, но я не нуждался ни в объяснении, ни в решении.  Речь шла о необходимости указании компилятором места вызова шаблона, чтобы можно было локализовать проблему.  Пока баг не пофиксят, нужно как-то с ним уживаться хотя бы в комфорте.

видимо до кодинга в блокноте еще далеко )))

 
Konstantin:
Кстати насчёт того, что "функция не понимает, какой тип она обрабатывает" - вы неправы.  Шаблон прекрасно работает с переданными ему аргументами. Ошибка возникает только при явном упоминании шаблонного типа в коде. 
Т.е. аргументы этого типа он понимает, а сам тип - нет. Как замечательно.
 

возможно не по теме. но с  теперь появились такие касяки:

1 не всегда обновляется до тестовых сборок.

2 Что то с сервером?, при сильной валатиности на учебных счетах(с постановщиками по умолчанию от  mql) перестают закрываться ордена, стопы((

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

 
AlikMsk:

возможно не по теме. но с  теперь появились такие касяки:

1 не всегда обновляется до тестовых сборок.

2 Что то с сервером?, при сильной валатиности на учебных счетах(с постановщиками по умолчанию от  mql) перестают закрываться ордена, стопы((

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


хорошее движение было. Сервер ушел на биржу... 

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