Здравствуйте __Andrey__, Вы писали:
А стандартным спсобом (через va_list) чем-то не устраивает ?
Т.е. что мешает написать так
void Func2(IObj& aObj,...)
{
va_list marker;
va_start(marker, aObj);
int param1 = va_arg(marker, int);
int param2 = va_arg(marker, int);
long param3 = va_arg(marker, long);
Func3(param1, param2, param3);
va_end(marker);
}
void Func3(int param1,int param2,long param3)
{
}
Здравствуйте bnk, Вы писали:
bnk>Здравствуйте __Andrey__, Вы писали:
bnk>А стандартным спсобом (через va_list) чем-то не устраивает ?
bnk>Т.е. что мешает написать так
bnk>bnk>void Func2(IObj& aObj,...)
bnk>{
bnk> va_list marker;
bnk> va_start(marker, aObj);
bnk> int param1 = va_arg(marker, int);
bnk> int param2 = va_arg(marker, int);
bnk> long param3 = va_arg(marker, long);
bnk> Func3(param1, param2, param3);
bnk> va_end(marker);
bnk>}
bnk>void Func3(int param1,int param2,long param3)
bnk>{
bnk>}
bnk>
Тут все несколько сложнее.
Нужно решение с помощью которого
функции могут иметь любые параметры.
Первый всегда — указатель на некий обьект
остальные неизвестны и любое количество.
Т.е. в конечном итоге как я это вижу —
одно решение на любое количество параметров через один два макроса.
1 —
viod iFunc1(IObj* a,int a1,long a2,char a3)
{
return sFunc1(a,a1,a2,a3);
}
void sFunc1(IObj* a,...)
{
// общее рещение на передачу пораметров в
// return Func1()
}
void Func1(int a1,long a2,char a3)
{
// ...
}
2 —
viod iFunc2(IObj* a,char* a3)
{
return sFunc1(a,a3);
}
void sFunc2(IObj* a,...)
{
// общее рещение на передачу пораметров в
// return Func2()
}
void Func2(char* a3)
{
// ...
}
к сожалению Выше решение
возможно только если знать типы и количество параметров.
сдесь этого нет.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте __Andrey__, Вы писали:
A>Идея в следующем : ...
Раз уж ты используешь нотацию IObj, значит, пользуешь интерфейсы. Поэтому посмотри реализация "слепого делегатора" в статье
Секреты маршалингаАвтор(ы): Чистяков В.Ю.
и рубрика "
Создание универсального MBV-helper-объекта" от Кейза Брауна и Дона Бокса.
То что нужно.
Спасибо.