如何注册依赖于移动语义的方法和使用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);
答案 0 :(得分:1)
r-values和unique_ptr现在支持ChaiScript的开发分支(成为6.0.0版本),但当时问这个问题是不可能的。