
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
memcpy можно использовать?
нет )
понимаешь, если уж делать какие-то приготовления перед вызовом SendParam, то проще уже int в какой то класс CInt обернуть.
Нет нативных способов взять указатель. Всмысле если ты изначально не используешь обертку CInt, обращаться с указателями тебе будет очень туго
Ну и в плюсах ты тоже делаешь приготовления.
{
//do something
}
{
int x = 5;
f(&x);
}
Взятие адреса это приготовление. Вместо него будет
f(GetPtr(x)) ну плюс тип передавать нужно
допустим есть фунцкия в классе
в которую передаётся тип параметра (type) и сам параметр, точнее указатель на него (void*).
параметр может быть любого типа (класс или простой тип).
с классами всё ок. а вот с простыми типам костыли.
template<typename T>
void SendReceiveParam(T& param);
....
{
double dval = 10;
SendReceiveParam(dval);
int ival = 10;
SendReceiveParam(ival)
...
// реф на объект структуры
struct AAA { void operator=(int a) {} };
AAA struct_val;
SendReceiveParam(struct_val);
}
написать нелегальный через инт-поинтеры?
Так и не въехал в условие задачи. Видимо, нет четкой формулировки, что хочется получить даже в примере.
два раза уже написал, что пробуем передать в параметр void* указатель на int.
(Варианты memcpy, промежуточный класс уже предложили, повторять не нужно)
два раза уже написал, что пробуем передать в параметр void* указатель на int.
(Варианты memcpy, промежуточный класс уже предложили, повторять не нужно)
в чем проблема, легальный void:
template<typename T>
void SendReceiveParam(T& param);
красиво, но не подходит.
в него нельзя передать NULL
Блин, хотя бы в синтаксисе C можно пример кода, который должен работать и на MQL?
int a=10;
SendParam(&a);
SendParam(NULL);
int a=10;
SendParam(&a);
SendParam(NULL);
красиво, но не подходит