私はこのテンプレートを持っています:
template <class T>
v8::Handle<v8::Value> jsFunctionTemplate(const v8::Arguments &args)
{
T *t = static_cast<T*>(args.This()->GetPointerFromInternalField(0));
if (t != NULL) t->volume(args[0]->NumberValue());
return args.This();
}
100%動的にしたいのでt->volume
、ポインター(std :: mem_fn?)に置き換えたいと思っています。問題は、同様の例/質問から、jsFunctionTemplateの現在のタイプを保持する方法を理解できないことです(これは)である必要がありv8::InvocationCallback
ます
typedef Handle<Value> (*InvocationCallback)(const Arguments& args);
そのため、使用法は次のようになります。
audio->PrototypeTemplate()->Set("Volume", v8::FunctionTemplate::New(&jsFunctionTemplate<Audio>));
私はC++11構文でさえ使用することに反対していません。