NVIDIA / NVIDIA/cuCollections

[FEA] Variadic ctor parameters

Open
#207 2 comments 0 reactions 0 assignees View on GitHub

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/T4oP1nsoW https://godbolt.org/z/Kj763Teon https://godbolt.org/z/5Ghac54E6
  • To make this more generic, instead of the get_or_default<T> function looking for a concrete type T, 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.