【问题标题】:How to shortcut complicated API access (v8)如何简化复杂的 API 访问 (v8)
【发布时间】:2013-04-14 16:51:18
【问题描述】:

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

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

obj->Get(String::New("property"))->NumberValue();

为了快捷,我可以使用助手:

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

Local<Value> strg(const char* str) {
    return String::New(str);
}

但这并不是真正的改进。 C(++) 是否为此用例(宏?)提供工具?

如果是的话会是什么样子。

【问题讨论】:

    标签: c++ api macros inline


    【解决方案1】:

    可能是这样的:

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

    用法:

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

    甚至可以做额外的快捷方式:

    #define NUMBER_VALUE(object, name) \
      PROPERTY(object, name)->NumberValue()
    

    用法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-27
      • 2021-09-11
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多