Questions marquées «templates»

La balise templates est utilisée dans plusieurs contextes: programmation générique (en particulier C ++) et génération de données / documents à l'aide de moteurs de modèles. Lorsque vous utilisez cette balise sur des questions lourdes d'implémentation - étiquetez le langage de code dans lequel l'implémentation est écrite

4
Erreur de modèle déroutante
J'ai joué avec clang un moment, et je suis tombé sur "test / SemaTemplate / depend-template-recover.cpp" (dans la distribution clang) qui est censé fournir des conseils pour récupérer d'une erreur de template. Le tout peut être facilement réduit à un exemple minimal: template<typename T, typename U, int N> struct X …
91 c++  templates  llvm  clang 










2
Comment std :: is_function est-il implémenté?
À quoi sert la mise en œuvre suivante std::is_function? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; (d'après la référence du RPC ) Il me semble qu'un intserait une fonction selon cette définition. Qu'est-ce que je rate?
82 c++  templates  std  sfinae 

3
Comment puis-je obtenir la profondeur d'un vecteur std :: multidimensionnel au moment de la compilation?
J'ai une fonction qui prend une dimension multidimensionnelle std::vectoret nécessite que la profondeur (ou le nombre de dimensions) soit transmise en tant que paramètre de modèle. Au lieu de coder en dur cette valeur, je voudrais écrire une constexprfonction qui prendra std::vectoret retournera la profondeur comme unsigned integervaleur. Par exemple: …

2
Pourquoi remove_reference ne fonctionne-t-il pas sur les fonctions?
Ran dans quelque chose d'étrange lors de la métaprogrammation de modèle l'autre jour. Cela revient essentiellement à cette affirmation qui ne passe pas (comme je m'y attendais). static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>); Au début, je pensais que je faisais une erreur syntaxique en définissant une référence de fonction, mais cette assertion passe, montrant …
38 c++  templates  types  c++17 

4
Modèle de méta-programmation
Quelqu'un peut-il m'expliquer pourquoi la première méthode de méta-programmation de modèle va en boucle infinie, mais la seconde fonctionne correctement. #include <iostream> using namespace std; template<int N, int M> struct commondivs { static const int val = (N<M) ? commondivs<N,(M-N)>::val : commondivs<(N-M),M>::val; }; template<int N> struct commondivs<N,N> { static const …

4
Surcharger une fonction à l'aide de modèles
J'essaie de définir une fonction à l'aide de modèles et je veux que le nom de type soit int ou anEnum (une énumération spécifique que j'avais définie). J'ai essayé ce qui suit mais j'ai échoué: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.