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