1. 29 May, 2017 1 commit
    • 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
  2. 17 Jan, 2016 1 commit
    • Wenzel Jakob's avatar
      Much more efficient generation of function signatures, updated docs · 66c9a402
      Wenzel Jakob authored
      This modification taps into some newer C++14 features (if present) to
      generate function signatures considerably more efficiently at compile
      time rather than at run time.
      
      With this change, pybind11 binaries are now *2.1 times* smaller compared
      to the Boost.Python baseline in the benchmark. Compilation times get a
      nice improvement as well.
      
      Visual Studio 2015 unfortunately doesn't implement 'constexpr' well
      enough yet to support this change and uses a runtime fallback.
      66c9a402
  3. 19 Oct, 2015 1 commit