Questions marquées «template-meta-programming»

27
Vérification modèle de l'existence d'une fonction membre de classe?
Est-il possible d'écrire un modèle qui change de comportement selon qu'une certaine fonction membre est définie sur une classe? Voici un exemple simple de ce que je voudrais écrire: template<class T> std::string optionalToString(T* obj) { if (FUNCTION_EXISTS(T->toString)) return obj->toString(); else return "toString not defined"; } Donc, si class Ta toString()défini, …

20
Comment pouvez-vous parcourir les éléments d'un std :: tuple?
Comment puis-je parcourir un tuple (en utilisant C ++ 11)? J'ai essayé ce qui suit: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); mais cela ne fonctionne pas: Erreur 1: désolé, non implémenté: impossible de développer 'Listener ...' dans une liste d'arguments de longueur fixe. Erreur 2: je ne peux pas apparaître dans …


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: …

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 …

2
Passer d'un concept à une fonction
Puisque les concepts sont définis comme des prédicats au moment de la compilation, est-il également possible de réutiliser ces prédicats pour les algorithmes au moment de la compilation? Par exemple, serait-il possible de vérifier si tous les types d'un tuple sont conformes à un concept? Pour autant que je l'ai …

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.