1. 28 Nov, 2022 1 commit
  2. 06 Jun, 2022 1 commit
  3. 14 Feb, 2022 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      Dropping MSVC 2015 (#3722) · a97e9d8c
      Ralf W. Grosse-Kunstleve authored
      * Changing `_MSC_VER` guard to `< 1910` (dropping MSVC 2015).
      
      * Removing MSVC 2015 from ci.yml, and .appveyor.yml entirely.
      
      * Bringing back .appveyor.yml from master.
      
      * appveyor Visual Studio 2017
      
      * 1st manual pass, builds & tests with unix_clang, before pre-commit.
      
      * After clang-format (via pre-commit).
      
      * Manual pass looking for "2015", builds & tests with unix_clang, before pre-commit.
      
      * Backtracking for include/pybind11 changes in previous commit.
      
      git checkout d07865846c7d31dd61111e6df801864327b65070 include/pybind11/attr.h include/pybind11/detail/common.h include/pybind11/functional.h
      
      --------------------
      
      CI #4160 errors observed:
      
      https://github.com/pybind/pybind11/pull/3722/commits/2a26873727214c5f1e159cba98f5c625b908381a
      https://github.com/pybind/pybind11/runs/5168332130?check_suite_focus=true
      
      $ grep ' error C' *.txt | sed 's/2022-02-12[^ ]*//' | sed 's/^[0-9][0-9]*//' | sed 's/^.*\.txt: //' | sort | uniqD:\a\pybind11\pybind11\include\pybind11\cast.h(1364,1): error C2752: 'pybind11::detail::type_caster<Eigen::Ref<Eigen::Vector3f,0,pybind11::EigenDStride>,void>': more than one partial specialization matches the template argument list [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\cross_module_gil_utils.vcxproj]
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\pybind11_cross_module_tests.vcxproj]
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\test_embed\external_module.vcxproj]
      D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      
      $ grep ': error C2737' *.txt | sed 's/^.*MSVC//' | sed 's/___.*//' | sort | uniq
      
      _2017
      
      $ grep ': error C2752' *.txt
      
      3______3.8_____MSVC_2019_____x86_-DCMAKE_CXX_STANDARD=17.txt:2022-02-12T16:12:45.9921122Z D:\a\pybind11\pybind11\include\pybind11\cast.h(1364,1): error C2752: 'pybind11::detail::type_caster<Eigen::Ref<Eigen::Vector3f,0,pybind11::EigenDStride>,void>': more than one partial specialization matches the template argument list [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      
      $ grep ': fatal error C1001:' *.txt
      
      10______pypy-3.8-v7.3.7_____windows-2022_____x64.txt:2022-02-12T16:12:56.3163683Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      1______3.6_____MSVC_2019_____x86.txt:2022-02-12T16:12:47.6774625Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      16______3.6_____windows-latest_____x64_-DPYBIND11_FINDPYTHON=ON.txt:2022-02-12T16:12:27.0556151Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      17______3.9_____windows-2019_____x64.txt:2022-02-12T16:12:30.3822566Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      2______3.7_____MSVC_2019_____x86.txt:2022-02-12T16:12:38.7018911Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      6______3.6_____windows-2022_____x64.txt:2022-02-12T16:12:00.4513642Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      7______3.9_____windows-2022_____x64.txt:2022-02-12T16:11:43.6306160Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      8______3.10_____windows-2022_____x64.txt:2022-02-12T16:11:49.9589644Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      9______pypy-3.7-v7.3.7_____windows-2022_____x64.txt:2022-02-12T16:11:53.7912112Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      
      * common.h: is_template_base_of
      
      * Re-applying 4 changes from 2a26873727214c5f1e159cba98f5c625b908381a that work universally.
      
      * `overload_cast = {};` only for MSVC 2017 and Clang 5
      
      * Refining condition for using is_template_base_of workaround.
      
      * Undoing MSVC 2015 workaround in test_constants_and_functions.cpp
      
      * CentOS7: silence_unused_warnings
      
      * Tweaks in response to reviews.
      
      * Adding windows-2022 C++20
      
      * Trying another way of adding windows-2022 C++20
      a97e9d8c
  4. 10 Feb, 2022 1 commit
  5. 29 Jul, 2021 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) · ed5fb66b
      Ralf W. Grosse-Kunstleve authored
      * Fixing `pragma warning pop` for `__INTEL_COMPILER`.
      
      * Adding push/pop to 3 tests. Removing #878 from top of pybind11.h (it was/is only needed for 1 test).
      
      * Trying again after CI failure, moving the push to the top of 2 tests.
      
      * Trying more after CI failure, adding push/pop to pybind11_tests.h, constructor_stats.h.
      
      * Moving ICC #2196 suppression to CMakeLists.txt
      
      * Fixing condition for `pragma GCC diagnostic push` in pybind11.h
      
      * Moving `pragma warning disable 2196` to common.h
      
      * Revising #ifdef to be more conservative.
      
      * Undoing insertion of notes that will hopefully soon be completely obsolete anyway.
      ed5fb66b
  6. 27 Jul, 2021 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) · 2164c2e0
      Ralf W. Grosse-Kunstleve authored
      * Fixing `pragma warning pop` for `__INTEL_COMPILER`.
      
      * Adding push/pop to 3 tests. Removing #878 from top of pybind11.h (it was/is only needed for 1 test).
      
      * Trying again after CI failure, moving the push to the top of 2 tests.
      
      * Trying more after CI failure, adding push/pop to pybind11_tests.h, constructor_stats.h.
      
      * Moving ICC #2196 suppression to CMakeLists.txt
      
      * Fixing condition for `pragma GCC diagnostic push` in pybind11.h
      
      * Moving `pragma warning disable 2196` to common.h
      
      * Revising #ifdef to be more conservative.
      
      * Undoing insertion of notes that will hopefully soon be completely obsolete anyway.
      2164c2e0
  7. 22 Jun, 2021 1 commit
    • Aaron Gokaslan's avatar
      fix(clang-tidy): performance fixes applied in tests and CI (#3051) · dac74ebd
      Aaron Gokaslan authored
      * Initial fixes
      
      * Whoops
      
      * Finish clang-tidy manual fixes
      
      * Add two missing fixes
      
      * Revert
      
      * Update clang-tidy
      
      * Try to fix unreachable code error
      
      * Move nolint comment
      
      * Apply missing fix
      
      * Don't override clang-tidy config
      
      * Does this fix clang-tidy?
      
      * Make all clang-tidy errors visible
      
      * Add comments about NOLINTs and remove a few
      
      * Fix typo
      dac74ebd
  8. 21 Jun, 2021 1 commit
  9. 14 Apr, 2021 1 commit
  10. 18 Jan, 2021 1 commit
    • Michael Kuron's avatar
      fix: Intel ICC C++17 compatibility (#2729) · 48534089
      Michael Kuron authored
      
      
      * CI: Intel icc/icpc via oneAPI
      
      Add testing for Intel icc/icpc via the oneAPI images.
      Intel oneAPI is in a late beta stage, currently shipping
      oneAPI beta09 with ICC 20.2.
      
      CI: Skip Interpreter Tests for Intel
      
      Cannot find how to add this, neiter the package `libc6-dev` nor
      `intel-oneapi-mkl-devel` help when installed to solve this:
      ```
      -- Looking for C++ include pthread.h
      -- Looking for C++ include pthread.h - not found
      CMake Error at /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
        Could NOT find Threads (missing: Threads_FOUND)
      Call Stack (most recent call first):
        /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
        /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindThreads.cmake:234 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
        tests/test_embed/CMakeLists.txt:17 (find_package)
      ```
      
      CI: libc6-dev from GCC for ICC
      
      CI: Run bare metal for oneAPI
      
      CI: Ubuntu 18.04 for oneAPI
      
      CI: Intel +Catch -Eigen
      
      CI: CMake from Apt (ICC tests)
      
      CI: Replace Intel Py with GCC Py
      
      CI: Intel w/o GCC's Eigen
      
      CI: ICC with verbose make
      
      [Debug] Find core dump
      
      tests: use arg{} instead of arg() for Intel
      
      tests: adding a few more missing {}
      
      fix: sync with @tobiasleibner's branch
      
      fix: try ubuntu 20-04
      
      fix: drop exit 1
      
      docs: Apply suggestions from code review
      Co-authored-by: default avatarTobias Leibner <tobias.leibner@googlemail.com>
      
      Workaround for ICC enable_if issues
      
      Another workaround for ICC's enable_if issues
      
      fix error in previous commit
      
      Disable one test for the Intel compiler in C++17 mode
      
      Add back one instance of py::arg().noconvert()
      
      Add NOLINT to fix clang-tidy check
      
      Work around for ICC internal error in PYBIND11_EXPAND_SIDE_EFFECTS in C++17 mode
      
      CI: Intel ICC with C++17
      
      docs: pybind11/numpy.h does not require numpy at build time. (#2720)
      
      This is nice enough to be mentioned explicitly in the docs.
      
      docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719)
      
      Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705)
      
      * Allow type_caster of std::reference_wrapper<T> to be the same as a native reference.
      
      Before, both std::reference_wrapper<T> and std::reference_wrapper<const T> would
      invoke cast_op<type>. This doesn't allow the type_caster<> specialization for T
      to distinguish reference_wrapper types from value types.
      
      After, the type_caster<> specialization invokes cast_op<type&>, which allows
      reference_wrapper to behave in the same way as a native reference type.
      
      * Add tests/examples for std::reference_wrapper<const T>
      
      * Add tests which use mutable/immutable variants
      
      This test is a chimera; it blends the pybind11 casters with a custom
      pytype implementation that supports immutable and mutable calls.
      
      In order to detect the immutable/mutable state, the cast_op needs
      to propagate it, even through e.g. std::reference<const T>
      
      Note: This is still a work in progress; some things are crashing,
      which likely means that I have a refcounting bug or something else
      missing.
      
      * Add/finish tests that distinguish const& from &
      
      Fixes the bugs in my custom python type implementation,
      demonstrate test that requires const& and reference_wrapper<const T>
      being treated differently from Non-const.
      
      * Add passing a const to non-const method.
      
      * Demonstrate non-const conversion of reference_wrapper in tests.
      
      Apply formatting presubmit check.
      
      * Fix build errors from presubmit checks.
      
      * Try and fix a few more CI errors
      
      * More CI fixes.
      
      * More CI fixups.
      
      * Try and get PyPy to work.
      
      * Additional minor fixups. Getting close to CI green.
      
      * More ci fixes?
      
      * fix clang-tidy warnings from presubmit
      
      * fix more clang-tidy warnings
      
      * minor comment and consistency cleanups
      
      * PyDECREF -> Py_DECREF
      
      * copy/move constructors
      
      * Resolve codereview comments
      
      * more review comment fixes
      
      * review comments: remove spurious &
      
      * Make the test fail even when the static_assert is commented out.
      
      This expands the test_freezable_type_caster a bit by:
      1/ adding accessors .is_immutable and .addr to compare identity
      from python.
      2/ Changing the default cast_op of the type_caster<> specialization
      to return a non-const value. In normal codepaths this is a reasonable
      default.
      3/ adding roundtrip variants to exercise the by reference, by pointer
      and by reference_wrapper in all call paths.  In conjunction with 2/, this
      demonstrates the failure case of the existing std::reference_wrpper conversion,
      which now loses const in a similar way that happens when using the default cast_op_type<>.
      
      * apply presubmit formatting
      
      * Revert inclusion of test_freezable_type_caster
      
      There's some concern that this test is a bit unwieldly because of the use
      of the raw <Python.h> functions. Removing for now.
      
      * Add a test that validates const references propagation.
      
      This test verifies that cast_op may be used to correctly detect
      const reference types when used with std::reference_wrapper.
      
      * mend
      
      * Review comments based changes.
      
      1. std::add_lvalue_reference<type> -> type&
      2. Simplify the test a little more; we're never returning the ConstRefCaster
      type so the class_ definition can be removed.
      
      * formatted files again.
      
      * Move const_ref_caster test to builtin_casters
      
      * Review comments: use cast_op and adjust some comments.
      
      * Simplify ConstRefCasted test
      
      I like this version better as it moves the assertion that matters
      back into python.
      
      ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724)
      
      * ci: drop pypy2 linux, add Python 10 dev
      
      * ci: fix mistake
      
      * ci: commented-out PGI 20.11, drop 20.7
      
      fix: regression with installed pybind11 overriding local one (#2716)
      
      * fix: regression with installed pybind11 overriding discovered one
      
      Closes #2709
      
      * docs: wording incorrect
      
      style: remove redundant instance->owned = true (#2723)
      
      which was just before set to True in instance->allocate_layout()
      
      fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701)
      
      Make args_are_all_* ICC workarounds unconditional
      
      Disable test_aligned on Intel ICC
      
      Fix test_aligned on Intel ICC
      
      Skip test_python_alreadyset_in_destructor on Intel ICC
      
      Fix test_aligned again
      
      ICC CI: Downgrade pytest
      
      pytest 6 does not capture the `discard_as_unraisable` stderr and
      just writes a warning with its content instead.
      
      * refactor: simpler Intel workaround, suggested by @laramiel
      
      * fix: try version with impl to see if it is easier to compile
      
      * docs: update README for ICC
      Co-authored-by: default avatarAxel Huebl <axel.huebl@plasma.ninja>
      Co-authored-by: default avatarHenry Schreiner <henryschreineriii@gmail.com>
      48534089
  11. 14 Jan, 2021 1 commit
    • Yannick Jadoul's avatar
      Plug leaking function_records in cpp_function initialization in case of... · 08551463
      Yannick Jadoul authored
      Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756)
      
      * Plug leaking function_record objects when exceptions are thrown
      
      * Plug leak of strdup'ed strings in function_record
      
      * Some extra comments about the function_record ownership dance
      
      * Clean up the function_record better, in case of exceptions
      
      * Demonstrate some extra function_record leaks
      
      * Change  DeleteStrings template argument to free_strings runtime argument in destruct(function_record *)
      
      * Zero-state unique_function_record deleter object
      
      * Clarify rvalue reference to unique_ptr parameter in initialize_generic
      
      * Use push_back with const char * instead of emplace_back
      08551463
  12. 15 Sep, 2020 1 commit
  13. 22 Nov, 2017 1 commit
    • Francesco Biscani's avatar
      Add -Wdeprecated to test suite and fix associated warnings (#1191) · ba33b2fc
      Francesco Biscani authored
      This commit turns on `-Wdeprecated` in the test suite and fixes several
      associated deprecation warnings that show up as a result:
      
      - in C++17 `static constexpr` members are implicitly inline; our
        redeclaration (needed for C++11/14) is deprecated in C++17.
      
      - various test suite classes have destructors and rely on implicit copy
        constructors, but implicit copy constructor definitions when a
        user-declared destructor is present was deprecated in C++11.
      
      - Eigen also has various implicit copy constructors, so just disable
        `-Wdeprecated` in `eigen.h`.
      ba33b2fc
  14. 05 Aug, 2017 1 commit
    • Jason Rhinelander's avatar
      Update all remaining tests to new test styles · 391c7544
      Jason Rhinelander authored
      This udpates all the remaining tests to the new test suite code and
      comment styles started in #898.  For the most part, the test coverage
      here is unchanged, with a few minor exceptions as noted below.
      
      - test_constants_and_functions: this adds more overload tests with
        overloads with different number of arguments for more comprehensive
        overload_cast testing.  The test style conversion broke the overload
        tests under MSVC 2015, prompting the additional tests while looking
        for a workaround.
      
      - test_eigen: this dropped the unused functions `get_cm_corners` and
        `get_cm_corners_const`--these same tests were duplicates of the same
        things provided (and used) via ReturnTester methods.
      
      - test_opaque_types: this test had a hidden dependence on ExampleMandA
        which is now fixed by using the global UserType which suffices for the
        relevant test.
      
      - test_methods_and_attributes: this required some additions to UserType
        to make it usable as a replacement for the test's previous SimpleType:
        UserType gained a value mutator, and the `value` property is not
        mutable (it was previously readonly).  Some overload tests were also
        added to better test overload_cast (as described above).
      
      - test_numpy_array: removed the untemplated mutate_data/mutate_data_t:
        the templated versions with an empty parameter pack expand to the same
        thing.
      
      - test_stl: this was already mostly in the new style; this just tweaks
        things a bit, localizing a class, and adding some missing
        `// test_whatever` comments.
      
      - test_virtual_functions: like `test_stl`, this was mostly in the new
        test style already, but needed some `// test_whatever` comments.
        This commit also moves the inherited virtual example code to the end
        of the file, after the main set of tests (since it is less important
        than the other tests, and rather length); it also got renamed to
        `test_inherited_virtuals` (from `test_inheriting_repeat`) because it
        tests both inherited virtual approaches, not just the repeat approach.
      391c7544
  15. 14 Dec, 2016 1 commit
    • Jason Rhinelander's avatar
      Support binding noexcept function/methods in C++17 · 6e036e78
      Jason Rhinelander authored
      When compiling in C++17 mode the noexcept specifier is part of the
      function type.  This causes a failure in pybind11 because, by omitting
      a noexcept specifier when deducing function return and argument types,
      we are implicitly making `noexcept(false)` part of the type.
      
      This means that functions with `noexcept` fail to match the function
      templates in cpp_function (and other places), and we get compilation
      failure (we end up trying to fit it into the lambda function version,
      which fails since a function pointer has no `operator()`).
      
      We can, however, deduce the true/false `B` in noexcept(B), so we don't
      need to add a whole other set of overloads, but need to deduce the extra
      argument when under C++17.  That will *not* work under pre-C++17,
      however.
      
      This commit adds two macros to fix the problem: under C++17 (with the
      appropriate feature macro set) they provide an extra `bool NoExceptions`
      template argument and provide the `noexcept(NoExceptions)` deduced
      specifier.  Under pre-C++17 they expand to nothing.
      
      This is needed to compile pybind11 with gcc7 under -std=c++17.
      6e036e78
  16. 08 Dec, 2016 1 commit
  17. 03 Sep, 2016 1 commit
    • Jason Rhinelander's avatar
      Make test initialization self-registering · 52f4be89
      Jason Rhinelander authored
      Adding or removing tests is a little bit cumbersome currently: the test
      needs to be added to CMakeLists.txt, the init function needs to be
      predeclared in pybind11_tests.cpp, then called in the plugin
      initialization.  While this isn't a big deal for tests that are being
      committed, it's more of a hassle when working on some new feature or
      test code for which I temporarily only care about building and linking
      the test being worked on rather than the entire test suite.
      
      This commit changes tests to self-register their initialization by
      having each test initialize a local object (which stores the
      initialization function in a static variable).  This makes changing the
      set of tests being build easy: one only needs to add or comment out
      test names in tests/CMakeLists.txt.
      
      A couple other minor changes that go along with this:
      
      - test_eigen.cpp is now included in the test list, then removed if eigen
        isn't available.  This lets you disable the eigen tests by commenting
        it out, just like all the other tests, but keeps the build working
        without eigen eigen isn't available.  (Also, if it's commented out, we
        don't even bother looking for and reporting the building with/without
        eigen status message).
      
      - pytest is now invoked with all the built test names (with .cpp changed
        to .py) so that it doesn't try to run tests that weren't built.
      52f4be89
  18. 19 Aug, 2016 3 commits
    • Dean Moldovan's avatar
      Move enum tests into a new file · a9a37b4e
      Dean Moldovan authored
      There are more enum tests than 'constants and functions'.
      a9a37b4e
    • Dean Moldovan's avatar
      Simplify tests by replacing output capture with asserts where possible · 665e8804
      Dean Moldovan authored
      The C++ part of the test code is modified to achieve this. As a result,
      this kind of test:
      
      ```python
      with capture:
          kw_func1(5, y=10)
      assert capture == "kw_func(x=5, y=10)"
      ```
      
      can be replaced with a simple:
      
      `assert kw_func1(5, y=10) == "x=5, y=10"`
      665e8804
    • Dean Moldovan's avatar
      Port tests to pytest · a0c1ccf0
      Dean Moldovan authored
      Use simple asserts and pytest's powerful introspection to make testing
      simpler. This merges the old .py/.ref file pairs into simple .py files
      where the expected values are right next to the code being tested.
      
      This commit does not touch the C++ part of the code and replicates the
      Python tests exactly like the old .ref-file-based approach.
      a0c1ccf0
  19. 04 Aug, 2016 1 commit
    • Jason Rhinelander's avatar
      Fix scoped enums and add scoped enum example · 61354194
      Jason Rhinelander authored
      PR #309 broke scoped enums, which failed to compile because the added:
      
          value == value2
      
      comparison isn't valid for a scoped enum (they aren't implicitly
      convertible to the underlying type).  This commit fixes it by
      explicitly converting the enum value to its underlying type before
      doing the comparison.
      
      It also adds a scoped enum example to the constants-and-functions
      example that triggers the problem fixed in this commit.
      61354194
  20. 18 Jul, 2016 1 commit
    • Jason Rhinelander's avatar
      Rename examples files, as per #288 · b3f3d79f
      Jason Rhinelander authored
      This renames example files from `exampleN` to `example-description`.
      
      Specifically, the following renaming is applied:
      
      example1 -> example-methods-and-attributes
      example2 -> example-python-types
      example3 -> example-operator-overloading
      example4 -> example-constants-and-functions
      example5 -> example-callbacks (*)
      example6 -> example-sequence-and-iterators
      example7 -> example-buffers
      example8 -> example-custom-ref-counting
      example9 -> example-modules
      example10 -> example-numpy-vectorize
      example11 -> example-arg-keywords-and-defaults
      example12 -> example-virtual-functions
      example13 -> example-keep-alive
      example14 -> example-opaque-types
      example15 -> example-pickling
      example16 -> example-inheritance
      example17 -> example-stl-binders
      example18 -> example-eval
      example19 -> example-custom-exceptions
      
      * the inheritance parts of example5 are moved into example-inheritance
      (previously example16), and the remainder is left as example-callbacks.
      
      This commit also renames the internal variables ("Example1",
      "Example2", "Example4", etc.) into non-numeric names ("ExampleMandA",
      "ExamplePythonTypes", "ExampleWithEnum", etc.) to correspond to the
      file renaming.
      
      The order of tests is preserved, but this can easily be changed if
      there is some more natural ordering by updating the list in
      examples/CMakeLists.txt.
      b3f3d79f
  21. 28 May, 2016 1 commit
  22. 18 Apr, 2016 1 commit
  23. 24 Jan, 2016 1 commit
  24. 17 Jan, 2016 1 commit
  25. 04 Oct, 2015 1 commit
  26. 29 Jul, 2015 1 commit
  27. 09 Jul, 2015 1 commit