1. 31 Aug, 2017 2 commits
  2. 30 Aug, 2017 7 commits
  3. 28 Aug, 2017 5 commits
  4. 25 Aug, 2017 4 commits
  5. 24 Aug, 2017 2 commits
  6. 23 Aug, 2017 9 commits
  7. 22 Aug, 2017 4 commits
  8. 21 Aug, 2017 1 commit
  9. 20 Aug, 2017 2 commits
  10. 19 Aug, 2017 2 commits
    • Fix typos in Eigen documentation · d265933d
      Fixes one small variable name typo, and two instances where `py::arg().nocopy()` is used, where I think it should be `py::arg().noconvert()` instead. Probably `nocopy()` was the old/original name for it and then it was changed.
      Patrik Huber committed
    • Allow module-local classes to be loaded externally · 5e14aa6a
      The main point of `py::module_local` is to make the C++ -> Python cast
      unique so that returning/casting a C++ instance is well-defined.
      Unfortunately it also makes loading unique, but this isn't particularly
      desirable: when an instance contains `Type` instance there's no reason
      it shouldn't be possible to pass that instance to a bound function
      taking a `Type` parameter, even if that function is in another module.
      
      This commit solves the issue by allowing foreign module (and global)
      type loaders have a chance to load the value if the local module loader
      fails.  The implementation here does this by storing a module-local
      loading function in a capsule in the python type, which we can then call
      if the local (and possibly global, if the local type is masking a global
      type) version doesn't work.
      Jason Rhinelander committed
  11. 17 Aug, 2017 2 commits
    • Remove PYBIND11_UNSHARED_STATIC_LOCALS macro · 39498b2b
      The macro isn't doing anything useful now that hidden visibility is
      applied to all pybind11 code.
      Jason Rhinelander committed
    • Reimplement py::init<...> to use common factory code · c4e18008
      This reimplements the py::init<...> implementations using the various
      functions added to support `py::init(...)`, and moves the implementing
      structs into `detail/init.h` from `pybind11.h`.  It doesn't simply use a
      factory directly, as this is a very common case and implementation
      without an extra lambda call is a small but useful optimization.
      
      This, combined with the previous lazy initialization, also avoids
      needing placement new for `py::init<...>()` construction: such
      construction now occurs via an ordinary `new Type(...)`.
      
      A consequence of this is that it also fixes a potential bug when using
      multiple inheritance from Python: it was very easy to write classes
      that double-initialize an existing instance which had the potential to
      leak for non-pod classes.  With the new implementation, an attempt to
      call `__init__` on an already-initialized object is now ignored.  (This
      was already done in the previous commit for factory constructors).
      
      This change exposed a few warnings (fixed here) from deleting a pointer
      to a base class with virtual functions but without a virtual destructor.
      These look like legitimate warnings that we shouldn't suppress; this
      adds virtual destructors to the appropriate classes.
      Jason Rhinelander committed