Add C++20 build support, bump to v0.7.0

Summary

  • Default C++ standard changed from 17 to 20 (C++17 still supported)
  • Remove C++11/C++14 compatibility code: custom Void<T> trait (replaced with std::void_t), _DUALS_CONSTEXPR macro, __cpp_user_defined_literals guard, pre-C++14 version checks in tests/type_name.hpp
  • Minimum compiler check updated from C++11 to C++17
  • CI: added build-cpp17 job to build and test with C++17
  • Version bumped to 0.7.0; last C++11/C++14 version is v0.6.3

Test plan

  • make clangr — builds and 381/381 tests pass with C++20
  • C++17 build with -DCMAKE_CXX_STANDARD=17 — 381/381 tests pass
  • C++23 tested — fails due to Eigen's use of std::result_of (removed in C++23), not a cppduals issue

Merge request reports

Loading