#pragma once #include #include "c10/util/Registry.h" namespace caffe2 { namespace python { namespace py = pybind11; struct PybindAddition { PybindAddition() {} PybindAddition(py::module&) {} virtual ~PybindAddition(){}; }; C10_DECLARE_REGISTRY(PybindAdditionRegistry, PybindAddition, py::module&); #define REGISTER_PYBIND_ADDITION(funcname) \ namespace { \ struct funcname##Impl : public PybindAddition { \ funcname##Impl(py::module& m) { \ funcname(m); \ } \ }; \ C10_REGISTER_CLASS(PybindAdditionRegistry, funcname##Impl, funcname##Impl); \ } } // namespace python } // namespace caffe2