pytorch-master\torch\csrc\api\include\torch\python.h
Partly
/// Creates a pybind11 class object for an `nn::Module` subclass type and adds
/// default bindings.
///
/// After adding the default bindings, the class object is returned, such that
/// you can add more bindings.
///
/// Example usage:
/// \rst
/// .. code-block:: cpp
///
/// struct Net : torch::nn::Module {
/// Net(int in, int out) { }
/// torch::Tensor forward(torch::Tensor x) { return x; }
/// };
///
/// PYBIND11_MODULE(my_module, m) {
/// torch::python::bind_module<Net>(m, "Net")
/// .def(py::init<int, int>())
/// .def("forward", &Net::forward);
/// }
/// \endrst
template <typename ModuleType, bool force_enable = false>
torch::disable_if_t<
torch::detail::has_forward<ModuleType>::value && !force_enable,
detail::PyModuleClass<ModuleType>&g