1. 22 Jun, 2016 2 commits
  2. 16 Jun, 2016 1 commit
  3. 03 Jun, 2016 3 commits
  4. 26 May, 2016 1 commit
    • 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
  5. 24 May, 2016 1 commit
  6. 21 May, 2016 1 commit
  7. 19 May, 2016 2 commits
  8. 15 May, 2016 2 commits
  9. 05 May, 2016 3 commits
  10. 04 May, 2016 1 commit
    • Wenzel Jakob's avatar
      redesigned format_descriptor<> and npy_format_descriptor<> · 876eeab4
      Wenzel Jakob authored
      This somewhat heavyweight solution will avoid size_t/long long/long/int
      mismatches on various platforms once and for all. The previous template
      overloads could e.g. not handle size_t on Darwin.
      
      One gotcha: the 'format_descriptor<T>::value()' syntax changed to just
      'format_descriptor<T>::value'
      876eeab4
  11. 01 May, 2016 1 commit
  12. 30 Apr, 2016 1 commit
  13. 28 Apr, 2016 2 commits
  14. 26 Apr, 2016 1 commit
  15. 25 Apr, 2016 1 commit
  16. 22 Apr, 2016 1 commit
  17. 14 Apr, 2016 1 commit
  18. 13 Apr, 2016 5 commits
  19. 11 Apr, 2016 1 commit
  20. 07 Apr, 2016 1 commit
  21. 06 Apr, 2016 1 commit
  22. 15 Mar, 2016 1 commit
  23. 06 Mar, 2016 1 commit
  24. 03 Mar, 2016 1 commit
  25. 02 Feb, 2016 1 commit
  26. 18 Jan, 2016 1 commit
  27. 17 Jan, 2016 2 commits
    • Wenzel Jakob's avatar
      general cleanup of the codebase · 48548ea4
      Wenzel Jakob authored
      - new pybind11::base<> attribute to indicate a subclass relationship
      - unified infrastructure for parsing variadic arguments in class_ and cpp_function
      - use 'handle' and 'object' more consistently everywhere
      48548ea4
    • Wenzel Jakob's avatar
      improved handling of shared/smart pointers · b2c2c792
      Wenzel Jakob authored
      Previously, pybind11 required classes using std::shared_ptr<> to derive
      from std::enable_shared_from_this<> (or compilation failures would ensue).
      
      Everything now also works for classes that don't do this, assuming that
      some basic rules are followed (e.g. never passing "raw" pointers of
      instances manged by shared pointers). The safer
      std::enable_shared_from_this<> approach continues to be supported.
      b2c2c792