[FEA] Variadic ctor parameters
Open
Nobody has claimed this yet.
type: feature request
- Dominant language
- Cuda
- Stars
- 667
- Forks
- 120
- Avg merge
- 7d 5h
- Merged PRs (30d)
- 4
Description
Part of #110 (Refactor of open address data structures)
Development branch: NVIDIA/cuCollections/refactor
Synopsis
To make it convenient to construct a static_set or other data structures with a variety of configuration parameters, we want to use a variadic constructor pattern.
TODOs
- Implement prototype:
https://godbolt.org/z/T4oP1nsoWhttps://godbolt.org/z/Kj763Teonhttps://godbolt.org/z/5Ghac54E6 - To make this more generic, instead of the
get_or_default<T>function looking for a concrete typeT, it could look for the first type that satisfies a given concept C, e.g.,get_or_default<C>. If necessary, use unique member tags to disambiguate a concept. - Optional: Ctors that only take a variadic parameter pack (helpful to #101). For this, we need a mechanism to detect if all mandatory parameters are present, e.g.,
get_or_error<T>. - refine prototype and fix nvcc build errors: https://godbolt.org/z/5Ghac54E6
References
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the static_set and related data structures named in the issue, then review the linked refactor development branch and the Godbolt prototypes. Confirm which variadic-constructor requirements remain and whether the prototype builds with nvcc. Done means the agreed constructor pattern is implemented and the listed nvcc build issues are resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100