1. 05 Aug, 2016 2 commits
    • Jason Rhinelander's avatar
      virtual + inheritance example: remove multiple inheritance approach · d6c365bc
      Jason Rhinelander authored
      It was already pretty badly intrusive, but it also appears to make MSVC
      segfault.  Rather than investigating and fixing it, it's easier to just
      remove it.
      d6c365bc
    • Jason Rhinelander's avatar
      Added advanced doc section on virtual methods + inheritance · 0ca96e29
      Jason Rhinelander authored
      As discussed in #320.
      
      The adds a documentation block that mentions that the trampoline classes
      must provide overrides for both the classes' own virtual methods *and*
      any inherited virtual methods.  It also provides a templated solution to
      avoiding method duplication.
      
      The example includes a third method (only mentioned in the "see also"
      section of the documentation addition), using multiple inheritance.
      While this approach works, and avoids code generation in deep
      hierarchies, it is intrusive by requiring that the wrapped classes use
      virtual inheritance, which itself is more instrusive if any of the
      virtual base classes need anything other than default constructors.  As
      per the discussion in #320, it is kept as an example, but not suggested
      in the documentation.
      0ca96e29
  2. 04 Aug, 2016 3 commits
  3. 01 Aug, 2016 1 commit
  4. 19 Jul, 2016 1 commit
  5. 18 Jul, 2016 2 commits
  6. 12 Jul, 2016 1 commit
  7. 11 Jul, 2016 3 commits
  8. 10 Jul, 2016 2 commits
  9. 08 Jul, 2016 2 commits
  10. 30 Jun, 2016 3 commits
  11. 28 Jun, 2016 1 commit
  12. 22 Jun, 2016 2 commits
  13. 16 Jun, 2016 1 commit
  14. 14 Jun, 2016 4 commits
  15. 03 Jun, 2016 6 commits
  16. 31 May, 2016 1 commit
  17. 26 May, 2016 4 commits
    • Dean Moldovan's avatar
      Update CMake build documentation · 24ddf4b3
      Dean Moldovan authored
      24ddf4b3
    • Wenzel Jakob's avatar
      minor update to release process · 2c76c693
      Wenzel Jakob authored
      2c76c693
    • Yung-Yu Chen's avatar
      2240ce2a
    • Wenzel Jakob's avatar
      Redesigned virtual call mechanism and user-facing syntax (breaking change!) · 86d825f3
      Wenzel Jakob authored
      Sergey Lyskov pointed out that the trampoline mechanism used to override
      virtual methods from within Python caused unnecessary overheads when
      instantiating the original (i.e. non-extended) class.
      
      This commit removes this inefficiency, but some syntax changes were
      needed to achieve this. Projects using this features will need to make a
      few changes:
      
      In particular, the example below shows the old syntax to instantiate a
      class with a trampoline:
      
      class_<TrampolineClass>("MyClass")
          .alias<MyClass>()
          ....
      
      This is what should be used now:
      
      class_<MyClass, std::unique_ptr<MyClass, TrampolineClass>("MyClass")
          ....
      
      Importantly, the trampoline class is now specified as the *third*
      argument to the class_ template, and the alias<..>() call is gone. The
      second argument with the unique pointer is simply the default holder
      type used by pybind11.
      86d825f3
  18. 24 May, 2016 1 commit