[FEA] Variadic ctor parameters

Ouverte
#207 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@sleeepyjack y travaille déjà.

Depuis le 26/4/2023.

  • #297 par @sleeepyjack — ouverte

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
cpp
Domaine
backend

Piste de recherche

Commencez par static_set et les structures de données associées mentionnés dans l’issue, puis examinez la branche de développement du refactor liée et les prototypes Godbolt. Vérifiez quelles exigences de variadic-constructor restent à satisfaire et si le prototype se compile avec nvcc. Le travail est terminé lorsque le modèle de constructeur convenu est implémenté et que les problèmes de compilation avec nvcc répertoriés sont résolus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

type: feature request

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
Langage dominant
Cuda
Étoiles
674
Forks
123
Merge moyen
19 h 7 min
PR mergées (30 j)
10

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de NVIDIA/cuCollections

Toutes les issues de NVIDIA/cuCollections

Issues similaires

Plus d'issues Backend & API Design

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.