Articles of modèles

Spécificateur de format pour le type basé sur un modèle

J’ai une classe C ++ basée sur le type entier, par exemple, template Dites que quelque part dans cette classe, j’aimerais utiliser sscanf pour lire certaines valeurs d’un fichier, par exemple: int_type num_rows; fgets( buffer, BUFSIZE, in_file ); sscanf( buffer, “%d”, &num_rows); Le spécificateur de format ne fonctionne correctement que si int_type est le type […]

Spécialisation de classe partielle pour le type et la valeur du pointeur de fonction

J’utilise FLTK pour effectuer mes tâches liées à l’interface graphique et des fonctions de type void (*fn)( Fl_Widget*, void* ) doivent être enregistrées en tant que rappels de widget. J’en ai assez de créer manuellement des redirecteurs de fonctions qui décompactent les void* s et appellent les fonctions statiques appropriées de mes classes pour effectuer […]

passage du type de pointeur à l’argument de modèle

J’ai écrit le code suivant: template void myname(T* x) { cout<<"x is "<<x; } et j’ai appelé: char *p=”stackOverflow”; myname(p); Il imprime stackOverflow . Mais si je change l’argument de template de (T* x) en (T x) j’obtiens le même résultat. Alors, quelle est la différence entre les deux parameters de modèle? void myname (T […]

Repliement récursif d’un pack de parameters pour résoudre les types d’espaces réservés

Avis: suivi de cette question Après avoir posé cette question sur le repliement du paquet de parameters en paires , j’ai remarqué que je devais conserver le type complet du type précédemment plié comme type de paire gauche. Par exemple: Fold f; doit évaluer à std::tuple< std::pair, std::pair<std::pair /* , std::pair<std::pair<std::pair, long> /* the previous […]

La spécialisation partielle des types de modèles nesteds génère une «erreur interne» dans le compilateur VC ++ 2012

Dans l’exemple suivant, j’ai une classe d’object qui définit une classe de référence. Les deux acceptent la mutabilité comme argument de modèle. Dans le cas où ‘obj’ est ‘Const’, je souhaite interdire une référence de type ‘Non_Const’. L’exemple produit le message ambigu «Une erreur interne s’est produite dans le compilateur» dans Visual C ++ 2012. […]

MSVC: Instanciation de modèle implicite, bien que le constructeur basé sur un modèle ne soit pas utilisé

J’essaie de comstackr Flusspferd sous Windows à l’aide de MSVC, mais il échoue en raison d’un problème d’instanciation de modèle. Pour la facilité d’explication, j’ai récrit le problème en termes plus simples: #include #include class UndefinedType; class A { }; class TestClass { public: TestClass(A* a) { } template TestClass(OtherType t, typename boost::disable_if<typename boost::is_convertible::type>::type * […]

Fonction de modèle avec des parameters de type dépendants dans la classe de modèle

J’ai essayé de faire ce truc simple et Visual Studio 2008 ne semble pas l’aimer. template class SomeClass { public: template static bool SomeOperator(const typename T1::const_iterator& p_Begin1, const typename T1::const_iterator& p_End1, const typename T2::const_iterator& p_Begin2, const typename T2::const_iterator& p_End2) { // do some stuff.. } }; Et appelez ça avec quelque chose comme ça: std::wssortingng […]

Opérateurs arithmétiques surchargés sur un modèle, provoquant une erreur externe non résolue

Disons que j’ai ce cours: dans Vector4.h : #pragma once template class Vector4 { public: TX; TY; TZ; TW; Vector4(); Vector4(TX, TY, TZ, TW); ~Vector4(); friend Vector4 operator*(const Vector4& l, const Vector4& r); }; #include “Vector4.inl” et dans Vector4.inl : template Vector4::Vector4() { X = 0; Y = 0; Z = 0; W = 0; […]

Héritage de constructeur pour la classe dérivée de la classe de modèle dans visual studio 2015 rc

Selon la page de msvs2015rc, l’inheritance du constructeur doit être pris en charge. Oui, cela fonctionne dans des cas simples comme celui-ci: struct B { B(int) {} }; struct D : B { using B::B; // now we can create D object with B’s constructor }; Mais si je vais essayer de créer un exemple […]

Passer le template typedef comme argument à un template de fonction

J’essaie de passer un template typedef comme argument à un template de fonction. Cependant, j’obtiens les erreurs suivantes: TestTemplates.cpp: 11: erreur: id-identificateur non qualifié attendu avant le jeton ‘&’ TestTemplates.cpp: 11: erreur: id-identificateur non qualifié attendu avant le jeton ‘&’ TestTemplates.cpp: 11: erreur: initialiseur attendu avant le jeton ‘&’ TestTemplates.cpp: 25: erreur: ‘func’ n’a pas […]