struct A
{
int i;
double d;
};
template<typename T>
T f(int value)
{
T result;
return(result);
}
//+------------------------------------------------------------------+voidOnStart()
{
A a;
int i = 1;
a = f(i);
}
//+------------------------------------------------------------------+
Потому что, похоже, совсем неправильно представляете работу шаблонов.
"Чуда", что хотели, не будет.
как компилятор преобразует шаблоны я представляю, ничего нового, так же работает?
struct A
{
int i;
double d;
};
template<typename T>
void f(int value,T &result)
{
T tmp;
result = tmp;
}
//+------------------------------------------------------------------+voidOnStart()
{
A a;
int i = 1;
f(i,a);
}
//+------------------------------------------------------------------+
Andrei Trukhanovich:
потому что шаблон выводит типы только по параметрам, но не по выходному значению.
потому что шаблон выводит типы только по параметрам, но не по выходному значению.
Это не точно.
struct A
{
int i;
double d;
};
template<typename T>
T f(int value)
{
T result={0};
return(result);
}
//+------------------------------------------------------------------+voidOnStart()
{
A a;
int i = 1;
a = f<A>(i);
}
Нет, это точно. Вы отметили явное задание типов параметров шаблона у функции, а я говорил про выведение, про явное задание fxsaber ответил до меня. и до вас
Нет, это точно. Вы отметили явное задание типов параметров шаблона у функции, а я говорил про выведение , про явное задание fxsaber ответил до меня. и до вас
У меня остается мусор на примере работы с зипами:
Прикрутил к своему скрипту - то же самое - похоже в zip-библиотеке.
PS. Выяснил, что это в Dictionary.mqh
Там шаблонный стиль кода. Это значит, что я просто не нарывался на проблемы из-за того, что использовал только часть функционала.
почему не могу такой шаблон сделать?
template mismatch
'f' - cannot to apply template
see declaration of 'f'
'f' - parameter passed as reference, variable expected
'f' - parameter passed as reference, variable expected
Что-то совсем замучился с хранилищем. Некоторые файлы нормально отправляет в хранилище, а некоторые ни в какую:
И, главное, нет mql5.storage-файла в папке \MQL5\ чтобы его удалить
Где он теперь?
почему не могу такой шаблон сделать?
Потому что, похоже, совсем неправильно представляете работу шаблонов.
a.i = f<int>(i);"Чуда", что хотели, не будет.
почему не могу такой шаблон сделать?
потому что шаблон выводит типы только по параметрам, но не по выходному значению.
Потому что, похоже, совсем неправильно представляете работу шаблонов.
"Чуда", что хотели, не будет.
как компилятор преобразует шаблоны я представляю, ничего нового, так же работает?
потому что шаблон выводит типы только по параметрам, но не по выходному значению.
понятно, была надежда, что что-то я не учел
ладно не критично, работать будет через параметры
потому что шаблон выводит типы только по параметрам, но не по выходному значению.
Это не точно.
Это не точно.
Спасибо!
Да, будет работать, в синтаксисе запутался
ЗЫ: все как задумано теперь работает:
сериализация POD-структур в Base64Это не точно.
Нет, это точно. Вы отметили явное задание типов параметров шаблона у функции, а я говорил про выведение, про явное задание fxsaber ответил до меня. и до вас
Нет, это точно. Вы отметили явное задание типов параметров шаблона у функции, а я говорил про выведение , про явное задание fxsaber ответил до меня. и до вас