diff --git a/python_binding/backend/pybind_OperatorImpl.cpp b/python_binding/backend/pybind_OperatorImpl.cpp index 8eb9e2649b19374e4346be18f9a3ab8070e4dc3c..34610069079ee792ebbe4b261b57177b3bbe2997 100644 --- a/python_binding/backend/pybind_OperatorImpl.cpp +++ b/python_binding/backend/pybind_OperatorImpl.cpp @@ -12,6 +12,7 @@ #include <pybind11/pybind11.h> #include <pybind11/stl.h> +#include "aidge/operator/Operator.hpp" #include "aidge/backend/OperatorImpl.hpp" namespace py = pybind11; @@ -22,8 +23,8 @@ namespace Aidge { * */ class pyOperatorImpl: public OperatorImpl { - public: - pyOperatorImpl(){} +public: + using OperatorImpl::OperatorImpl; // Inherit constructors void forward() override { PYBIND11_OVERRIDE( @@ -42,7 +43,7 @@ class pyOperatorImpl: public OperatorImpl { ); } NbElts_t getNbRequiredData(const IOIndex_t inputIdx) const override { - PYBIND11_OVERRIDE_PURE_NAME( + PYBIND11_OVERRIDE_NAME( NbElts_t, OperatorImpl, "get_nb_required_data", @@ -51,7 +52,7 @@ class pyOperatorImpl: public OperatorImpl { ); } NbElts_t getNbRequiredProtected(const IOIndex_t inputIdx) const override { - PYBIND11_OVERRIDE_PURE_NAME( + PYBIND11_OVERRIDE_NAME( NbElts_t, OperatorImpl, "get_nb_required_protected", @@ -62,7 +63,7 @@ class pyOperatorImpl: public OperatorImpl { } NbElts_t getRequiredMemory(const IOIndex_t outputIdx, const std::vector<DimSize_t> &inputsSize) const override { - PYBIND11_OVERRIDE_PURE_NAME( + PYBIND11_OVERRIDE_NAME( NbElts_t, OperatorImpl, "get_required_memory", @@ -73,7 +74,7 @@ class pyOperatorImpl: public OperatorImpl { ); } NbElts_t getNbConsumedData(const IOIndex_t inputIdx) const override { - PYBIND11_OVERRIDE_PURE_NAME( + PYBIND11_OVERRIDE_NAME( NbElts_t, OperatorImpl, "get_nb_consumed_data", @@ -83,7 +84,7 @@ class pyOperatorImpl: public OperatorImpl { ); } NbElts_t getNbProducedData(const IOIndex_t outputIdx) const override { - PYBIND11_OVERRIDE_PURE_NAME( + PYBIND11_OVERRIDE_NAME( NbElts_t, OperatorImpl, "get_nb_produced_data", @@ -93,7 +94,7 @@ class pyOperatorImpl: public OperatorImpl { ); } void updateConsummerProducer() override { - PYBIND11_OVERRIDE_PURE_NAME( + PYBIND11_OVERRIDE_NAME( void, OperatorImpl, "update_consummer_producer", @@ -106,7 +107,7 @@ class pyOperatorImpl: public OperatorImpl { void init_OperatorImpl(py::module& m){ py::class_<OperatorImpl, std::shared_ptr<OperatorImpl>, pyOperatorImpl>(m, "OperatorImpl", py::dynamic_attr()) - .def(py::init<>()) + .def(py::init<const Operator&>()) .def("forward", &OperatorImpl::forward) .def("backward", &OperatorImpl::backward) .def("get_nb_required_data", &OperatorImpl::getNbRequiredData)