C++17 has been released 5 years ago and the default compilers on Ubuntu 20.04 and Ubuntu 22.04 all support this standard. Support in CUDA has been added with CUDA 11.0 (released March 2020) and a potential future SYCL backend will require C++17 anyways. Furthermore, Ubuntu 18.04 will reach EOL soon in April 2023 and should not longer be used. Therefore, it makes sense to raise the requirements which will also simplify and unblock future developments.
C++17 has been released 5 years ago and the default compilers on Ubuntu 20.04 and Ubuntu 22.04 all support this standard. Support in CUDA has been added with CUDA 11.0 (released March 2020) and a potential future SYCL backend will require C++17 anyways. Furthermore, Ubuntu 18.04 will reach EOL soon in April 2023 and should not longer be used. Therefore, it makes sense to raise the requirements which will also simplify and unblock future developments.
New Requirements
Drop Ubuntu 18.04 support (EOL in April 2023)
GCC 7 -> 9, Clang 6 -> 10, MSVC 19.20 already sufficient
CMake 3.15 -> 3.18 (CUDA support for C++17), also aligns with the requirements for the Clang CUDA compiler
thrust 1.9.2 -> thrust 1.9.9
CUDA 10.0 -> 11.0
Cleanups with C++17
Library Code
limits
-> unblocks header-only~*::value
by shorter*_v
versions~void_t
intype_traits
~attribute.h
and use native attributes~STDGPU_HAS_CXX_17
~atomic
backports in CUDA backend for CC 3.0 and lower (support removed with CUDA 11.0+)~memory
~to_address
implementation withif constexpr
~std::byte
overunsigned char
inbit
~noexcept
qualifier to function signatures~CMake
FindCUDAToolkit.cmake
module~set_device_flags.cmake
~