Skip to content

Commit

Permalink
Clarify compatibility wrt. template specializations (NVIDIA#2138)
Browse files Browse the repository at this point in the history
* Clarify compatibility wrt. template specializations

We do not want users to specialize arbitrary templates in CCCL unless otherwise stated. This PR makes this clear in the README.md.

Co-authored-by: Michael Schellenberger Costa <[email protected]>
  • Loading branch information
2 people authored and pciolkosz committed Aug 4, 2024
1 parent de312d6 commit 96c4905
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -381,8 +381,8 @@ As mentioned above, not all possible source breaking changes constitute a Breaki
Users are encouraged to adhere to the following guidelines in order to minimize the risk of disruptions from accidentally depending on parts of CCCL that are not part of the public API:
- Do not add any declarations to the `thrust::`, `cub::`, `nv::`, or `cuda::` namespaces unless an exception is noted for a specific symbol, e.g., specializing a type trait.
- **Rationale**: This would cause symbol conflicts if a symbol is added with the same name.
- Do not add any declarations to, or specialize any template from, the `thrust::`, `cub::`, `nv::`, or `cuda::` namespaces unless an exception is noted for a specific symbol, e.g., specializing `cuda::std::iterator_traits`
- **Rationale**: This would cause conflicts if a symbol or specialization is added with the same name.
- Do not take the address of any API in the `thrust::`, `cub::`, `cuda::`, or `nv::` namespaces.
- **Rationale**: This would prevent adding overloads of these APIs.
- Do not forward declare any API in the `thrust::`, `cub::`, `cuda::`, or `nv::` namespaces.
Expand Down

0 comments on commit 96c4905

Please sign in to comment.