Я пытаюсь написать несколько шаблонов для переноса классов в JavaScript. В основном это делается через SetAccessor ()
, определяя имя для метода доступа и функцию-член, которая должна быть вызвана. Я создал что-то вроде этого:
template <typename Ret, typename T>
void mbind (const char* name, Ret (T::*method)())
{
...
objectTemplate->SetAccessor (String::NewSymbol(name),get_value<Ret,T>);
...
}
И это текущее определение get_value
:
template <typename Ret, typename T>
Handle<Value> get_value (Local<String> name, const AccessorInfo& info)
{
...
}
Идея состоит в том, чтобы автоматически связать функцию следующим образом:
mbind ("getX",&SomeClass::getX);
Но это не сработает, если у меня есть два метода, подобных этому:
int SomeClass::getX ();
int SomeClass::getY ();
, поскольку Ret
и T
одинаковы в обоих случаях. Как я могу получить различные экземпляры шаблона для этих двух случаев?
Заранее спасибо.