• Dean Moldovan's avatar
    Replace PYBIND11_PLUGIN with PYBIND11_MODULE · 443ab594
    Dean Moldovan authored
    This commit also adds `doc()` to `object_api` as a shortcut for the
    `attr("__doc__")` accessor.
    
    The module macro changes from:
    ```c++
    PYBIND11_PLUGIN(example) {
        pybind11::module m("example", "pybind11 example plugin");
        m.def("add", [](int a, int b) { return a + b; });
        return m.ptr();
    }
    ```
    
    to:
    
    ```c++
    PYBIND11_MODULE(example, m) {
        m.doc() = "pybind11 example plugin";
        m.def("add", [](int a, int b) { return a + b; });
    }
    ```
    
    Using the old macro results in a deprecation warning. The warning
    actually points to the `pybind11_init` function (since attributes
    don't bind to macros), but the message should be quite clear:
    "PYBIND11_PLUGIN is deprecated, use PYBIND11_MODULE".
    443ab594
benchmark.py 2.85 KB