Крайне непонятная реализация передачи параметров функций

 
Если параметр функции типа string вычисляется в теле вызова функции, то при конвертации другого параметра из double в int, строковый параметр становится неиницализированым :) Демо-код:

void testStr2(string name, int time1, string text) {
	Print("testStr2 " + time1 + " text=" + text);
}

int init()  {
	testStr2("str", 10000.0, "shift=1");
	testStr2("str", 10000, "shift=" + 1);
	testStr2("str", 10000.0, "shift=" + 1);
	
   return(0);
}



Как видно второй и третий вызовы отличаются только типом второго параметра, но ошибка возникает в третьем параметре :) - он становится неинициализированым. Если же строка не вычисляется в теле вызова функции, то ошибки нет.

2005.04.05 15:32:04	Test USDJPY,M5: initialized
2005.04.05 15:32:04	Test USDJPY,M5: testStr2 10000 text=
2005.04.05 15:32:04	Test USDJPY,M5: not initialized string
2005.04.05 15:32:04	Test USDJPY,M5: not initialized string
2005.04.05 15:32:04	Test USDJPY,M5: not initialized string
2005.04.05 15:32:04	Test USDJPY,M5: testStr2 10000 text=shift=1
2005.04.05 15:32:04	Test USDJPY,M5: testStr2 10000 text=shift=1
2005.04.05 15:32:04	Test USDJPY,M5: loaded successfully



предвидя возможный вопрос зачем передавать double в функцию с int аргументом, скажу как поп из преферансного анекдота: на то есть 11 причин, первая из которых отсутcтвие структур и объектов в MQL :)

 
будем смотреть
 
исправление будет в ближайшем билде. спасибо.
 
исправление будет в ближайшем билде. спасибо.

Спасибо. И исправьте, пожалуйста, ошибку с инициализацией присоединенного к графику эксперта после компиляции (я описывал ее в треде по 161 билду), а то из-за нее у меня терминал по 10 раз на день слетает.
 
да. это исправлено
Причина обращения: