如何使用chaiscript的引擎注册依赖于move语义和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: error:'type name‘声明为指向'std::__1::unique_ptr std::__1::default_delete >&’返回*static_cast(P)类型的引用的指针;
发布于 2016-12-19 22:15:51
R值和unique_ptr现在在ChaiScript的开发分支(版本6.0.0)中得到了支持,但是在提出这个问题时,这是不可能的。
https://stackoverflow.com/questions/40578412
复制相似问题