Comment enregistrer une méthode qui repose sur la sémantique de déplacement et std::unique_ptr
avec le moteur de chaiscript? Voici un exemple morceau de code que je ne peux pas travailler en utilisant chaiscript 5.8.5:Déplacer la sémantique et std :: unique_ptr dans chaiscript
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"},
});
Cela génère l'erreur suivante à partir chaiscript:
dispatchkit/boxed_cast_helper.hpp:43:46: error: 'type name' declared as a pointer to a reference of type 'std::__1::unique_ptr std::__1::default_delete > &&' return *static_cast(p);