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

 
A100:

Где работает? - специально для Вас привел простейший пример где void не работает - более того работает почти ЛЮБОЙ ДРУГОЙ идентификатор КРОМЕ void. Разберитесь сначала что такое void

чего разбираться? 

void *a в MQL сложно где применить, ну разве что в изощренном садо-мазо с последующим поиском доказательств  несоответствия MQL и С++

ну если это важно: 

#define MACRO()

ну добивайтесь своего )))

 

Заметил такой баг - уже несколько часов пашет только 1 ядро

Остальным 3м ядрам вообще задания не идут


 

Ребята,

вопрос по МТ4 (по МТ5 не нашел такого брокера), но он серьезный. 

https://www.mql5.com/ru/forum/295315/page21#comment_12903138


прошу пнуть..

Новая версия платформы MetaTrader 4 build 1170
Новая версия платформы MetaTrader 4 build 1170
  • 2019.08.19
  • www.mql5.com
Новая версия платформы MetaTrader 4 build 1170 20 декабря 2018 года будет выпущено обновление MetaTrader 4...
 
Igor Makanu:

чего разбираться? 

void *a в MQL сложно где применить, ну разве что в изощренном садо-мазо с последующим поиском доказательств  несоответствия MQL и С++

Если Вам сложно, то не применяйте - зачем нагружать мозг лишней информацией? Как эту проблему просто обойти я и без Вас знаю (сразу написал что просто обходится), а то что Вы предложили наихудщий вариант обхода (через void) - я Вам это наглядно показал на простейшем примере

И несоответствие здесь не с C++, а с MQL документацией - частный случай параметрической формы при нулевом числе параметров
 
A100:

Если Вам сложно, то не применяйте - зачем нагружать мозг лишней информацией? 

думаю я сам разберусь, что, как и когда мне удобно нагружать, если Вам не сложно, то действуйте так же , но самостоятельно и у себя

за три сообщения Вы не удосужились показать более изящное решение, к сожалению это факт

 
Igor Makanu:

за три сообщения Вы не удосужились показать более изящное решение, к сожалению это факт

Ежу понятно

#define MACRO( ТОЛЬКО_НЕ_void )    Print( "OK" )
void OnStart() { MACRO(); }
 

Если функцией ::Print() выводится в окно Инструменты\Эксперты длинная строка (более 260 символов), то в результате копировании этой строки через ПКМ\Копировать она усекается до 256 символов.


Если же копировать через ПКМ\Просмотр\ПКМ\Копировать, то усечения не происходит.

А какая разница?

 
A100:

Ежу понятно

#define MACRO( ТОЛЬКО_НЕ_void )    Print( "OK" )
void OnStart() { MACRO(); }

хм, сложно все у Вас...... ЕЖАМ привет передавайте!

#define   test(int) for(int i=0;i<10;i++) Print("OK");
//+------------------------------------------------------------------+
void OnStart()
  {
  test();
  }

'i' - undeclared identifier tst.mq5 16 3

вариант с void будет без проблем работать, ну Вам там виднее, наполенку не забудьте снять
 
A100:

Ежу понятно

#define MACRO Print( "OK" )
void OnStart() { MACRO; }

А Вам что, скобочки после макроса душу греют?

А так да, употреблять в объявлении параметра макроса зарезервированные слова - это та еще любовь к предпосылкам создания лютых багов. Ну да, каждый сам решает как себе ноги отстреливать, благо разрабы не совсем нас обезопасили от сего увлекательного действия, за что им респект)))

Разберитесь наконец что есть параметр макроса и как он употребляется.

 
Igor Makanu:

хм, сложно все у Вас...... ЕЖАМ привет передавайте!

'i' - undeclared identifier tst.mq5 16 3

вариант с void будет без проблем работать, ну Вам там виднее, наполенку не забудьте снять
void OnStart()
  {
  for(i=0;i<10;i++) Print("OK");;
  }

Вот что Вам препроцессор собрал на выходе.

PS две ; - это не моя опечатка, это реально после препроцессора будет.