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.

templates...

C ++ - 14 a introduit std :: enable_if_t. Quelle est la différence entre it et std :: enable_if? Y a-t-il des avantages ou des différences à utiliser std :: enable_if_t?....
11 juin 2020 à 10:57
Pour un certain contexte, j'écris un allocateur qui prend un allocateur de base comme type de modèle, et ne fait rien d'autre que transmettre les appels allocate() et deallocate() au membre d'allocateur sous-jacent. La création de std::vector avec cet allocateur personnalisé fonctionne très bien. J....
Avec la méta-programmation de modèle, il est possible d'interroger les propriétés des types. Par exemple, dans le cas ci-dessous, je vérifie si un certain type a une fonction membre "foo" qui prend un autre type comme argument. Existe-t-il un moyen de vérifier si le type de paramètre correspond exac....
31 mai 2020 à 07:18
Je cherche un moyen de transmettre les arguments de modèle d'une classe basée sur un modèle (la classe principale de Bibliothèque FastLED sur Arduino, pour être précis) via le constructeur de ma propre classe (qui devrait essentiellement envelopper la bibliothèque FastLED). Je veux spécifier les arg....
30 mai 2020 à 17:27
J'ai une situation où mon opérateur de module de modèle joue bien entre les flottants et les types entiers. Si je me souviens bien, il existe un moyen de lui faire sélectionner le plus spécifique sur le champ d'application plus large, mais je n'arrive pas à trouver ou à me rappeler comment faire cel....
30 mai 2020 à 11:46
Je réfléchissais beaucoup au titre à mettre sur ma question et j'ai quand même échoué, donc si vous en trouvez un bon, veuillez le modifier. J'essaie d'écrire une fonction d'impression pour un vector ou un autre container<T> et d'avoir une autre fonction d'impression pour container<container<T>>, al....
J'utilise un pointeur vers la fonction membre dans un contexte générique et cela fonctionne bien. struct Mock{ static int inc(int){ return 0; } static int dec(int){ return 0; } }; struct Real{ Real(int v) : v(v){} int inc(int a) const{ return a + v;....
25 mai 2020 à 12:01
J'essaye de surcharger l'opérateur "< #include <iostream> template<class T> class main_class { public: class dependent_class { public: dependent_class() : val(0) { } template<class T> friend std::ostream& operator<<(std::ostream&, const dependent_class&); pro....
24 mai 2020 à 06:40
#include <iostream> // std::cout template <class T> T Sum(T x, T y) { return x + y; } int main() { std::cout << Sum<int>(5, 10); std::cout << "\n" << 'a' + 'b'; std::cout << "\n" << Sum<char>('a', 'b'); return 0; } Le programme se fige sur la dernière ligne lors de l'utilisation du site....
22 mai 2020 à 14:04
J'ai besoin d'écrire un modèle en C ++ qui implémente une version abstraite d'un ensemble. Je ne trouve pas de solution (ou pire, je ne comprends pas vraiment quoi faire) à une erreur de compilation. Ceci est une version simplifiée du programme principal dont j'ai besoin pour compiler et exécuter - ....
21 mai 2020 à 20:21
J'ai deux constructeurs dans un modèle de classe, un avec tableau, un avec vecteur comme paramètre. J'ai des membres pointeurs qui pointent vers les paramètres donnés. Je dois surcharger l'opérateur [] et écrire la méthode size () (une seule de chaque) qui fonctionne avec les deux mais je ne sais pa....
21 mai 2020 à 13:05
Je veux surcharger le constructeur de la classe abstraite avec un type spécifique. Par exemple, j'ai: abstract class Polinom(v: T) Donc, quand je crée Polinom[String], je veux appeler constructor(String), pour Int je veux appeler constructor(Int). Si T != String and T != Int alors j'appelle constru....
J'ai une classe de modèle simplestring qui gère simplement TChar * et sa longueur. TChar peut être à la fois char et wchar_t. Voici une méthode simple de découpage à gauche, simplestring<T> ltrim(const T* _s = nullptr) const { const T* s = _s; if (s == nullptr) { #if ( sizeof(T) == 1) ....
9 mai 2020 à 10:05
Je voulais utiliser boost::mpi communicateurs dans ma classe, car je veux que ma classe s'occupe de tous les appels MPI. J'ai utilisé ce style pour en faire des membres statiques de ma classe. // works.cpp // mpic++ -o works works.cpp -lboost_mpi #include <boost/mpi.hpp> #include <iostream> class....
7 mai 2020 à 11:31
J'ai besoin de créer une classe de modèle en C ++. Je dois m'assurer que le type du paramètre de modèle sera une classe avec 1 champ int et 1 champ de chaîne (il peut y avoir plus de champs, mais ceux-ci sont obligatoires). Par exemple, en C #, je pourrais définir une interface avec des méthodes ou ....
5 mai 2020 à 22:00
J'ai un modèle: template<typename T> void testFuction(int(*testFunc)(CallBack, void *, T *)) { // define CallBack callback, void* param1, T* param2 // ... testFunc(callback, param1, param2); } Cela fonctionne mais ça a l'air terrible, je veux faire quelque chose comme: template<typename....
J'ai quelques problèmes dans mon code. Le premier est dans la variable "Element" et cela fonctionne bien pour moi tant que le constructeur de la classe qui a envoyé le template ses variables ont des valeurs par défaut, y a-t-il un moyen de sauter le constructeur sans mettre les valeurs par défaut da....
2 mai 2020 à 10:50
Je crée actuellement mon conteneur vectoriel personnalisé pour mieux comprendre les vrais conteneurs STL. Je suis confronté au problème de la fonction "insert". Ce sont deux prototypes de "insérer" dans mon conteneur de vecteur. // 1 template <typename T, typename Alloc> void vector<T, Alloc>::inser....
1 mai 2020 à 23:29
J'essaie d'écrire une classe qui expose différents constructeurs en fonction de la valeur des propres paramètres de modèle de la classe. Le code naïf qui m'est venu à l'esprit en essayant de le faire est le suivant: // C++14 #include <type_traits> template <int compile_time_w = -1, int compile_time....
1 mai 2020 à 17:22
Considérez la classe suivante: template <typename classTypeT> class myClass { public: using FunctionType1 = std::function<void(classTypeT &, const std::string*)>; using FunctionType2 = std::function<void(classTypeT &, const int)>; using FunctionVariantType = boost::variant<FunctionTy....
Supposons que j'ai une classe de modèle template <int v> class Foo {...} J'ai une fonction void f(...) Qui acceptent comme entrées n'importe quel objet de Foo <1>, Foo <2> etc, comment puis-je définir la fonction? Il paraît que void f(Foo x) Ne compile pas. Quel est un type courant pour Foo <1>,....
30 avril 2020 à 15:14
Je suis nouveau dans les modèles et je ne comprends pas vraiment pourquoi cela ne fonctionne pas. Je m'attendais à ce que le vecteur soit construit avec ces valeurs. main.cpp template <typename ...T> void int_printf(T ...args) { std::vector<T> vec = {args...}; for(auto& v:vec) { ....
28 avril 2020 à 21:25
J'ai décidé d'utiliser le modèle suivant pour combiner automatiquement différents types d'objets et leurs configurations: enum class Type { Car, Person }; template< Type TYPE > struct Object; template< Type TYPE > struct ObjectConfig; template<> struct ObjectConfig< Type::Car > { }; // Version 1....
28 avril 2020 à 15:56
Je veux créer une classe de fabrique de modèle telle que, étant donné un int i, il créera une instance de la i'ème classe dans sa liste de paramètres; et je dois être une variable d'exécution. L'idée commence comme suit: Disons que nous avons les types A, B. Nous pouvons créer la classe ci-dessous f....
27 avril 2020 à 07:34
Existe-t-il un moyen d'appeler différents constructeurs de la même classe en fonction de différents paramètres de modèle. template<class T> class X { public: T a; X<char>() { std::cout << "char ctor called" << std::endl; } X<int>() { std::cout << "int ctor called" << st....
25 avril 2020 à 13:21