C++ 如何简化复杂的API访问(v8)

C++ 如何简化复杂的API访问(v8),c++,api,macros,inline,C++,Api,Macros,Inline,每次我想从v8:对象中获得与C兼容的值时,我必须执行以下操作: Local<Object> obj = args[0]->ToObject(); obj->Get(String::New("property"))->NumberValue(); localobj=args[0]->ToObject(); obj->Get(String::New(“property”)->NumberValue(); 要实现此快捷方式,我可以使用助手: obj->Get(

每次我想从v8:对象中获得与C兼容的值时,我必须执行以下操作:

Local<Object> obj = args[0]->ToObject();

obj->Get(String::New("property"))->NumberValue();
localobj=args[0]->ToObject();
obj->Get(String::New(“property”)->NumberValue();
要实现此快捷方式,我可以使用助手:

obj->Get(strg("property"))->NumberValue();

Local<Value> strg(const char* str) {
    return String::New(str);
}
obj->Get(strg(“属性”)->NumberValue();
本地strg(常量字符*str){
返回字符串::New(str);
}
但这并不是真正的进步。C(++)是否为此用例(宏)提供了工具

如果是,它会是什么样子。

可能是这样的:

#define PROPERTY(object, name) \
  object->Get(String::New(name))
用法:

Local<Object> obj = args[0]->ToObject();

PROPERTY(obj, "property")->NumberValue();
Local<Object> obj = args[0]->ToObject();

NUMBER_VALUE(obj, "property");
用法:

Local<Object> obj = args[0]->ToObject();

PROPERTY(obj, "property")->NumberValue();
Local<Object> obj = args[0]->ToObject();

NUMBER_VALUE(obj, "property");
localobj=args[0]->ToObject();
数值(obj,“财产”);