在chaiscript中移动语义和std :: unique_ptr

时间:2016-11-13 20:23:20

标签: chaiscript

如何注册依赖于移动语义的方法和使用chaiscript引擎的std::unique_ptr?这是使用chaiscript 5.8.5无法使用的一段代码示例:

class Element;
class MyClass
{
public:
    void addElement(std::unique_ptr<Element>&&);
};

chaiscript::ModulePtr m = chaiscript::ModulePtr(new chaiscript::Module());
chaiscript::utility::add_class<MyClass>(*m, "MyClass", {
    chaiscript::constructor<MyClass ()>()
}, {
    {chaiscript::fun(&MyClass::addElement), "addElement"},
});

这会在chaiscript中产生以下错误:

  

dispatchkit / boxed_cast_helper.hpp:43:46:错误:'type name'声明为指向'std :: __ 1 :: unique_ptr类型的引用的指针   std :: __ 1 :: default_delete&gt; &安培;&安培;” return * static_cast(p);

1 个答案:

答案 0 :(得分:1)

r-values和unique_ptr现在支持ChaiScript的开发分支(成为6.0.0版本),但当时问这个问题是不可能的。