1. 19 Sep, 2019 1 commit
  2. 19 Aug, 2019 1 commit
    • Andre Schmeißer's avatar
      Make `overload_cast_impl` available in C++11 mode. (#1581) · 19189b4c
      Andre Schmeißer authored
      * Make `overload_cast_impl` available in C++11 mode.
      
      Narrow the scope of the `#if defined(PYBIND11_CPP14)` block around overload_cast to only
      cover the parts where C++14 is stricly required. Thus, the implementation in
      `pybind11::details::overload_cast_impl` is still available in C++11 mode.
      
      * PR #1581: Modify test to use overload_cast_impl, update docs and change log
      19189b4c
  3. 19 Jul, 2019 1 commit
  4. 22 Jun, 2019 1 commit
  5. 12 Jun, 2019 1 commit
  6. 11 Jun, 2019 4 commits
  7. 10 Jun, 2019 6 commits
  8. 16 Nov, 2018 2 commits
  9. 13 Nov, 2018 1 commit
  10. 11 Oct, 2018 1 commit
    • Allan Leal's avatar
      Fix for Issue #1258 (#1298) · e76dff77
      Allan Leal authored
      * Fix for Issue #1258
      
      list_caster::load method will now check for a Python string and prevent its automatic conversion to a list.
      This should fix the issue "pybind11/stl.h converts string to vector<string> #1258" (https://github.com/pybind/pybind11/issues/1258)
      
      * Added tests for fix of issue #1258
      
      * Changelog: stl string auto-conversion
      e76dff77
  11. 11 Sep, 2018 4 commits
  12. 29 Aug, 2018 1 commit
    • Axel Huebl's avatar
      add_module: allow include as SYSTEM (#1416) · 435dbdd1
      Axel Huebl authored
      pybind11 headers passed via the `pybind11_add_module` CMake
      function can now be included as `SYSTEM` includes (`-isystem`).
      
      This allows to set stricter (or experimental) warnings in
      calling projects that might throw otherwise in headers
      a user of pybind11 can not influence.
      435dbdd1
  13. 28 Aug, 2018 1 commit
  14. 17 Jul, 2018 1 commit
  15. 24 Jun, 2018 1 commit
  16. 24 May, 2018 1 commit
  17. 07 May, 2018 1 commit
  18. 06 May, 2018 2 commits
  19. 29 Apr, 2018 2 commits
  20. 24 Apr, 2018 1 commit
  21. 14 Apr, 2018 1 commit
    • oremanj's avatar
      Add basic support for tag-based static polymorphism (#1326) · fd9bc8f5
      oremanj authored
      * Add basic support for tag-based static polymorphism
      
      Sometimes it is possible to look at a C++ object and know what its dynamic type is,
      even if it doesn't use C++ polymorphism, because instances of the object and its
      subclasses conform to some other mechanism for being self-describing; for example,
      perhaps there's an enumerated "tag" or "kind" member in the base class that's always
      set to an indication of the correct type. This might be done for performance reasons,
      or to permit most-derived types to be trivially copyable. One of the most widely-known
      examples is in LLVM: https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html
      
      This PR permits pybind11 to be informed of such conventions via a new specializable
      detail::polymorphic_type_hook<> template, which generalizes the previous logic for
      determining the runtime type of an object based on C++ RTTI. Implementors provide
      a way to map from a base class object to a const std::type_info* for the dynamic
      type; pybind11 then uses this to ensure that casting a Base* to Python creates a
      Python object that knows it's wrapping the appropriate sort of Derived.
      
      There are a number of restrictions with this tag-based static polymorphism support
      compared to pybind11's existing support for built-in C++ polymorphism:
      
      - there is no support for this-pointer adjustment, so only single inheritance is permitted
      - there is no way to make C++ code call new Python-provided subclasses
      - when binding C++ classes that redefine a method in a subclass, the .def() must be
        repeated in the binding for Python to know about the update
      
      But these are not much of an issue in practice in many cases, the impact on the
      complexity of pybind11's innards is minimal and localized, and the support for
      automatic downcasting improves usability a great deal.
      fd9bc8f5
  22. 09 Apr, 2018 1 commit
  23. 07 Apr, 2018 1 commit
    • Boris Staletic's avatar
      Implement an enum_ property "name" · 289e5d9c
      Boris Staletic authored
      The property returns the enum_ value as a string.
      For example:
      
      >>> import module
      >>> module.enum.VALUE
      enum.VALUE
      >>> str(module.enum.VALUE)
      'enum.VALUE'
      >>> module.enum.VALUE.name
      'VALUE'
      
      This is actually the equivalent of Boost.Python "name" property.
      289e5d9c
  24. 03 Apr, 2018 1 commit
    • Patrik Huber's avatar
      Fix missing word typo · 41a4fd8a
      Patrik Huber authored
      I think that there's the word "for" missing for that sentence to be correct.
      Please double-check that the sentence means what it's supposed to mean. :-)
      41a4fd8a
  25. 10 Mar, 2018 2 commits
    • Jason Rhinelander's avatar
      Improve macro type handling for types with commas · e88656ab
      Jason Rhinelander authored
      - PYBIND11_MAKE_OPAQUE now takes ... rather than a single argument and
        expands it with __VA_ARGS__; this lets templated, comma-containing
        types get through correctly.
      - Adds a new macro PYBIND11_TYPE() that lets you pass the type into a
        macro as a single argument, such as:
      
            PYBIND11_OVERLOAD(PYBIND11_TYPE(R<1,2>), PYBIND11_TYPE(C<3,4>), func)
      
        Unfortunately this only works for one macro call: to forward the
        argument on to the next macro call (without the processor breaking it
        up again) requires also adding the PYBIND11_TYPE(...) to type macro
        arguments in the PYBIND11_OVERLOAD_... macro chain.
      - updated the documentation with these two changes, and use them at a couple
        places in the test suite to test that they work.
      e88656ab
    • Marc Schlaich's avatar
      Correct VS version in FAQ · ab003dbd
      Marc Schlaich authored
      ab003dbd