Есть ли возможность делать функции с переменным количеством параметров разного типа как Printf(argument, ...)? - страница 4 1234 Новый комментарий pivomoe 2023.01.24 14:23 #31 Stanislav Korotky #: Можно заменить #define на шаблон, но в шаблоне можно использовать только до 8 параметров. т.е написать 8 функций на шаблонах от 1 до 8 параметров ? Иначе как записать строку на шаблоне ? #define vars string s1 = "", string s2 = "", string s3 = "", string s4 = "", string s5 = "", string s6 = "", string s7 = "", string s8 = "", string s9 = "", string s10 = "" pivomoe 2023.01.24 18:08 #32 Вроде получилось сделать все, что хотел. Сделал define и простыню шаблонных функций. #define STOP_PROGRAM_ StopProgramm(" "+__FILE__+":"+(string)__LINE__, template<typename T1> void StopProgramm(T1 var1 ) { string Str; StringConcatenate(Str,var1); _StoopProgramm(Str); } template<typename T1,typename T2> void StopProgramm(T1 var1,T2 var2) { string Str; StringConcatenate(Str,var2,var1); _StoopProgram(Str); } Теперь вызываю вот так. int OnInit() { int i=45; double d=343.3; bool Otvet=false; STOP_PROGRAM_" i=",i," d=",d," Otvet=",Otvet," TimeLocal=",TimeLocal()); return INIT_FAILED; } Результат: i=45 d=343.3 Otvet=false TimeLocal=2023.01.24 20:03:00 Test:8Кстати про ограничение в 8 параметров в шаблонных функций ничего не нашел. Сделал простыню до 10 параметров. Stanislav Korotky 2023.01.24 19:38 #33 pivomoe #: Вроде получилось сделать все, что хотел. Сделал define и простыню шаблонных функций. Теперь вызываю вот так. Результат:Кстати про ограничение в 8 параметров в шаблонных функций ничего не нашел. Сделал простыню до 10 параметров. В документации (https://www.mql5.com/ru/docs/basis/oop/templates) написано: Количество параметров в шаблоне не может быть больше восьми. Но, сейчас берет и больше - видимо что-то поменяли. Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций www.mql5.com Шаблоны функций - Объектно-ориентированное программирование - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 1234 Новый комментарий
Можно заменить #define на шаблон, но в шаблоне можно использовать только до 8 параметров.
т.е написать 8 функций на шаблонах от 1 до 8 параметров ? Иначе как записать строку на шаблоне ?
Вроде получилось сделать все, что хотел. Сделал define и простыню шаблонных функций.
Теперь вызываю вот так.
Результат:
Кстати про ограничение в 8 параметров в шаблонных функций ничего не нашел. Сделал простыню до 10 параметров.Вроде получилось сделать все, что хотел. Сделал define и простыню шаблонных функций.
Теперь вызываю вот так.
Результат:
Кстати про ограничение в 8 параметров в шаблонных функций ничего не нашел. Сделал простыню до 10 параметров.В документации (https://www.mql5.com/ru/docs/basis/oop/templates) написано:
Количество параметров в шаблоне не может быть больше восьми.
Но, сейчас берет и больше - видимо что-то поменяли.