preguntar acerca de sfinae

30
réponses

Comment puis-je ajouter une réflexion à une application c++?

J'aimerais pouvoir introspecter une Classe C++ pour son nom, son contenu (c'est-à-dire les membres et leurs types), etc. Je parle de C++ natif ici, pas de C++ géré, qui a une réflexion. Je me rends compte que C++ fournit des informations limitées en …
demandé sur 1970-01-01 00:33:28
7
réponses

Comment appeler une fonction template si elle existe, et autre chose autrement?

Je veux faire quelque chose comme template <typename T> void foo(const T& t) { IF bar(t) would compile bar(t); ELSE baz(t); } Je pensais que quelque chose en utilisant enable_if ferait le travail ici, en divisant foo en …
demandé sur 1970-01-01 00:33:29
3
réponses

vérifiez si le membre existe en utilisant enable if

Voici ce que j'essaie de faire: template <typename T> struct Model { vector<T> vertices ; #if T has a .normal member void transform( Matrix m ) { each vertex in vertices { vertex.pos = m * vert …
demandé sur 1970-01-01 00:33:32
5
réponses

Pourquoi compiler l’erreur avec enable if

Pourquoi cela ne compile pas avec gcc48 et clang32? #include <type_traits> template <int N> struct S { template<class T> typename std::enable_if<N==1, int>::type f(T t) {return 1;}; template<class T> …
demandé sur 1970-01-01 00:33:32
2
réponses

Utilisation de modèles d’alias pour sfinae: le langage le permet-il?

Je viens de découvrir la technique suivante. Il semble très proche de l'un des concepts proposés syntaxe, fonctionne parfaitement sur Clang, GCC et MSVC. template <typename T, typename = typename std::enable_if<std::is_rvalue_reference<T&am …
demandé sur 1970-01-01 00:33:38
10
réponses

Comment écrire un trait de type ‘est conteneur` ou`est vecteur’?

est - il possible d'écrire un trait de type dont la valeur est vraie pour toutes les structures STL communes (par exemple, vector,set, map,...)? pour commencer, j'aimerais écrire un trait de type qui est vrai pour un vector et faux autrement. J'ai e …
demandé sur 1970-01-01 00:33:32