diff --git a/include/aidge/utils/Registrar.hpp b/include/aidge/utils/Registrar.hpp index a5bd260ec189ac998134b738ca1ae757f2a0038c..567270d63c092aef6411a4438f59b7770ee3d5bf 100644 --- a/include/aidge/utils/Registrar.hpp +++ b/include/aidge/utils/Registrar.hpp @@ -132,11 +132,13 @@ void declare_registrable(py::module& m, const std::string& class_name){ #ifdef PYBIND #define SET_IMPL_MACRO(T_Op, op, backend_name) \ \ - if(Py_IsInitialized()) { \ - auto obj = py::cast(&(op)); \ - (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \ - } else { \ - (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \ + if (Registrar<T_Op>::exists(backend_name)) { \ + if(Py_IsInitialized()) { \ + auto obj = py::cast(&(op)); \ + (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \ + } else { \ + (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \ + } \ } #else #define SET_IMPL_MACRO(T_Op, op, backend_name) \