C ++ вызывает функцию lua с переменными параметрами

Хорошо, это может не лучшее дизайнерское решение, и я действительно не хочу использовать что-то вроде LuaBind ... Мне было просто любопытно, возможно ли следующее в C ++ 03 (C ++ 11 делает это возможным с вариативными шаблонами). Я уверен, что об этом уже спрашивали раньше, но я не смог найти прямого ответа!

Скажем, у меня есть вспомогательный метод для вызова функций Lua из кода:

void CallFunction(char* functionName, ...);

, который потенциально может принимать N аргументов (используя va_arg или любой другой метод нескольких аргументов)

H как я могу, если это вообще возможно, определить тип каждого параметра и передать его соответствующему lua_push {type} (); перед вызовом нужной функции lua?

Я не уверен, можно ли это сделать с помощью var_arg, потому что вам нужно знать тип, когда вы захватываете параметр, я попытался захватить его с помощью void * и передать его специализированный шаблон, но он пытается передать его в шаблон.

Надеюсь, кто-нибудь, кто лучше владеет C ++, найдет пару трюков! Большое спасибо

5
задан GracelessROB 25 October 2011 в 06:52
поделиться