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 withstd::void_t),_DUALS_CONSTEXPRmacro,__cpp_user_defined_literalsguard, pre-C++14 version checks intests/type_name.hpp - Minimum compiler check updated from C++11 to C++17
- CI: added
build-cpp17job 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