В MQL5 всегда есть место подвигу ! ;) - страница 7

 
o_O:
memcpy можно использовать?
 
Комбинатор:
memcpy можно использовать?

нет )

понимаешь, если уж делать какие-то приготовления перед вызовом SendParam, то проще уже int в какой то класс CInt обернуть.

 
o_O:

Нет нативных способов взять указатель. Всмысле если ты изначально не используешь обертку CInt, обращаться с указателями тебе будет очень туго

Ну и в плюсах ты тоже делаешь приготовления.


void f(int* value)
{
   //do something
}

{
   int x = 5;
   f(&x);
}

Взятие адреса это приготовление. Вместо него будет

f(GetPtr(x)) ну плюс тип передавать нужно

 
o_O:

допустим есть фунцкия в классе

SendParam(int type, void* param)

в которую передаётся тип параметра (type) и сам параметр, точнее указатель на него (void*).

параметр может быть любого типа (класс или простой тип).

с классами всё ок. а вот с простыми типам костыли.

в чем проблема, легальный 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);
}

написать нелегальный через инт-поинтеры?
 
Так и не въехал в условие задачи. Видимо, нет четкой формулировки, что хочется получить даже в примере.
 
fxsaber:
Так и не въехал в условие задачи. Видимо, нет четкой формулировки, что хочется получить даже в примере.

два раза уже написал, что пробуем передать в параметр void* указатель на int.

(Варианты memcpy, промежуточный класс уже предложили, повторять не нужно)

 
o_O:

два раза уже написал, что пробуем передать в параметр void* указатель на int.

(Варианты memcpy, промежуточный класс уже предложили, повторять не нужно)

Блин, хотя бы в синтаксисе C можно пример кода, который должен работать и на MQL?
 
alexsis78:
в чем проблема, легальный void:
template<typename T>
void SendReceiveParam(T& param);

красиво, но не подходит.

в него нельзя передать NULL

 
fxsaber:
Блин, хотя бы в синтаксисе C можно пример кода, который должен работать и на MQL?
void SendParam(void* );

int a=10;
SendParam(&a);
SendParam(NULL);
 
o_O:
void SendParam(void* );

int a=10;
SendParam(&a);
SendParam(NULL);
Спасибо за пример! Но я не уловил цель использования - удобство. Пожалуйста, добавьте еще кусочек из SendParam, чтобы понять, как указатель, например, на int хочется использовать.
o_O:

красиво, но не подходит

Что именно красиво? Вроде, лобовое применение шаблонов. Или я чего-то не догоняю?
Причина обращения: