Questions marquées «templates»

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

5
Comment vérifier si une variable existe dans un modèle FreeMarker?
J'ai un modèle Freemarker qui contient un tas d'espaces réservés pour lesquels des valeurs sont fournies lorsque le modèle est traité. Je veux inclure conditionnellement une partie du modèle si la variable userName est fournie, quelque chose comme: [#if_exists userName] Hi ${userName}, How are you? [/#if_exists] Cependant, le manuel FreeMarker …



7
std :: fonction vs modèle
Grâce à C ++ 11, nous avons reçu la std::functionfamille des wrappers de foncteurs. Malheureusement, je n'entends que de mauvaises choses à propos de ces nouveaux ajouts. Le plus populaire est qu'ils sont horriblement lents. Je l'ai testé et ils sont vraiment nuls par rapport aux modèles. #include <iostream> #include …

14
Modèles C ++ qui n'acceptent que certains types
En Java, vous pouvez définir une classe générique qui n'accepte que les types qui étendent la classe de votre choix, par exemple: public class ObservableList<T extends List> { ... } Ceci est fait en utilisant le mot-clé "extend". Existe-t-il un équivalent simple à ce mot clé en C ++?
159 c++  templates 

7
std :: enable_if pour compiler conditionnellement une fonction membre
J'essaie de faire travailler un exemple simple pour comprendre comment l'utiliser std::enable_if. Après avoir lu cette réponse , j'ai pensé qu'il ne devrait pas être trop difficile de trouver un exemple simple. Je veux utiliser std::enable_ifpour choisir entre deux fonctions membres et n'autoriser qu'une seule d'entre elles à être utilisée. …
156 c++  templates  g++  c++11 

3
Quand utiliser std :: forward pour transférer des arguments?
C ++ 0x montre un exemple d'utilisation std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Quand est-il toujours avantageux de l'utiliser std::forward? En outre, il nécessite de l'utiliser &&dans la déclaration des paramètres, est-ce valable dans tous les cas? Je pensais que vous deviez passer des temporaires à une …



4
Arguments par défaut du modèle
Si je suis autorisé à faire ce qui suit: template <typename T = int> class Foo{ }; Pourquoi ne suis-je pas autorisé à faire ce qui suit en général? Foo me; Mais je dois préciser ce qui suit: Foo<int> me; C ++ 11 a introduit des arguments de modèle par …
151 c++  templates 

2
Comment fonctionne `void_t`
J'ai regardé le discours de Walter Brown au Cppcon14 sur la programmation de modèles modernes ( Partie I , Partie II ) où il a présenté sa void_ttechnique SFINAE. Exemple: étant donné un modèle de variable simple qui évalue voidsi tous les arguments du modèle sont bien formés: template< class …
149 c++  templates  c++14  sfinae 

3
Initialisation de membre statique dans un modèle de classe
J'aimerais faire ceci: template <typename T> struct S { ... static double something_relevant = 1.5; }; mais je ne peux pas puisque ce something_relevantn'est pas de type intégral. Cela ne dépend pas T, mais le code existant dépend du fait qu'il soit un membre statique de S. Puisque S est …
148 c++  templates  static 


10
Comment émuler le comportement de l'initialisation du tableau C "int arr [] = {e1, e2, e3,…}" avec std :: array?
(Remarque: cette question concerne le fait de ne pas avoir à spécifier le nombre d'éléments et de toujours permettre aux types imbriqués d'être directement initialisés.) Cette question traite des utilisations restantes pour un tableau C comme int arr[20];. Sur sa réponse , @James Kanze montre l'un des derniers bastions des …


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.