1. 31 Jan, 2017 1 commit
  2. 13 Jan, 2017 2 commits
    • jbarlow83's avatar
      Docs: minor clarifications (#590) · 7830e850
      jbarlow83 authored
      * Some clarifications to section on virtual fns
      
      Primarily, I made it clear that PYBIND11_OVERLOAD_PURE_NAME is not "useful" but required in renaming situations. Also clarified that one should not bind to the trampoline helper class which I found tempting since it seems more explicit.
      
      * Remove :emphasize-lines: from cpp block, seems to suppress formatting
      
      * docs: emphasize default policy, clarify keep_alive
      
      Emphasize the default return value policy since this statement is hidden in a wall of text. 
      
      Add a hint that call policies are probably required for container objects.
      7830e850
    • myd7349's avatar
      Docs: Fix several errors of examples from the doc (#592) · 9b815ad2
      myd7349 authored
      * [Doc] Fix several errors of examples from the doc
      
      * Add missing operator def.
      
      * Added missing `()`
      
      * Add missing `namespace`.
      9b815ad2
  3. 16 Dec, 2016 1 commit
    • Wenzel Jakob's avatar
      WIP: PyPy support (#527) · 1d1f81b2
      Wenzel Jakob authored
      This commit includes modifications that are needed to get pybind11 to work with PyPy. The full test suite compiles and runs except for a last few functions that are commented out (due to problems in PyPy that were reported on the PyPy bugtracker).
      
      Two somewhat intrusive changes were needed to make it possible: two new tags ``py::buffer_protocol()`` and ``py::metaclass()`` must now be specified to the ``class_`` constructor if the class uses the buffer protocol and/or requires a metaclass (e.g. for static properties).
      
      Note that this is only for the PyPy version based on Python 2.7 for now. When the PyPy 3.x has caught up in terms of cpyext compliance, a PyPy 3.x patch will follow.
      1d1f81b2
  4. 15 Dec, 2016 1 commit
  5. 09 Dec, 2016 1 commit
  6. 07 Dec, 2016 1 commit
  7. 17 Nov, 2016 1 commit
    • Wenzel Jakob's avatar
      make arithmetic operators of enum_ optional (#508) · 405f6d1d
      Wenzel Jakob authored
      Following commit 90d278, the object code generated by the python
      bindings of nanogui (github.com/wjakob/nanogui) went up by a whopping
      12%. It turns out that that project has quite a few enums where we don't
      really care about arithmetic operators.
      
      This commit thus partially reverts the effects of #503 by introducing
      an additional attribute py::arithmetic() that must be specified if the
      arithmetic operators are desired.
      405f6d1d
  8. 15 Nov, 2016 1 commit
  9. 04 Nov, 2016 1 commit
  10. 03 Nov, 2016 2 commits
  11. 01 Nov, 2016 1 commit
    • Dean Moldovan's avatar
      Make reference(_internal) the default return value policy for properties (#473) · 03f627eb
      Dean Moldovan authored
      * Make reference(_internal) the default return value policy for properties
      
      Before this, all `def_property*` functions used `automatic` as their
      default return value policy. This commit makes it so that:
      
       * Non-static properties use `reference_interal` by default, thus
         matching `def_readonly` and `def_readwrite`.
      
       * Static properties use `reference` by default, thus matching
         `def_readonly_static` and `def_readwrite_static`.
      
      In case `cpp_function` is passed to any `def_property*`, its policy will
      be used instead of any defaults. User-defined arguments in `extras`
      still have top priority and will override both the default policies and
      the ones from `cpp_function`.
      
      Resolves #436.
      
      * Almost always use return_value_policy::move for rvalues
      
      For functions which return rvalues or rvalue references, the only viable
      return value policies are `copy` and `move`. `reference(_internal)` and
      `take_ownership` would take the address of a temporary which is always
      an error.
      
      This commit prevents possible user errors by overriding the bad rvalue
      policies with `move`. Besides `move`, only `copy` is allowed, and only
      if it's explicitly selected by the user.
      
      This is also a necessary safety feature to support the new default
      return value policies for properties: `reference(_internal)`.
      03f627eb
  12. 24 Oct, 2016 1 commit
  13. 20 Oct, 2016 3 commits