Conformance and versioning#
2026-10-07
1 min read time
Conformance#
libhipcxx aims to be a conforming implementation of the C++ Standard, ISO/IEC IS 14882, Clause 16 through 32.
Versioning#
libhipcxx is a fork of libcu++ and follows its versioning. A libhipcxx release carries the version of the upstream CCCL release it is based on; the current version is 3.0.2.
API version#
The API version is a three-component semantic version, MAJOR.MINOR.PATCH, exposed by four macros from
<cuda/std/version>:
_LIBCUDACXX_CUDA_API_VERSION_MAJORis incremented for API-breaking changes._LIBCUDACXX_CUDA_API_VERSION_MINORis incremented when API-compatible features are added._LIBCUDACXX_CUDA_API_VERSION_PATCHis incremented for all other changes._LIBCUDACXX_CUDA_API_VERSIONcombines the three asMAJOR * 1000000 + MINOR * 1000 + PATCH, which is3000002for version 3.0.2.
A single API version is supported at a time.
ABI version#
The ABI version is a single integer. libhipcxx supports exactly one ABI version, 4, so both
_LIBCUDACXX_CUDA_ABI_VERSION and _LIBCUDACXX_CUDA_ABI_VERSION_LATEST from <cuda/std/version> are 4.
Defining _LIBCUDACXX_CUDA_ABI_VERSION to any other value is a compile-time error.
libhipcxx makes no promise of long-term ABI stability. Promising long-term ABI stability would prevent fixing mistakes and achieving high performance, so no such promises are made. A program is ill-formed, no diagnostic required, if it links translation units that were compiled against different libhipcxx versions.