Articles of Modèles

LoadError Impossible de charger automatiquement la constante Message

Dans mon application; Quand je soumets un formulaire, j’obtiens cette erreur: LoadError at /questions Unable to autoload constant Message, expected /app/models/message.rb to define it Il pointe vers l’action create dans le contrôleur Questions : @message = current_user.messages.new(:subject => “You have a question from #{@question.sender_id}”` Modèle de message: class Mailboxer::Message < ActiveRecord::Base attr_accessible :notification_id, :receiver_id, :conversation_id […]

fonction non membre ne peut pas avoir de qualificatif cv

En écrivant la fonction suivante abs , j’obtiens l’erreur: la fonction non-membre unsigned int abs(const T&) ne peut pas avoir le qualificatif cv. template inline unsigned int abs(const T& t) const { return t>0?t:-t; } Après avoir supprimé le qualificatif const pour la fonction, il n’y a plus d’erreur. Comme je ne modifie pas t […]

Identifiant de la constante de compilation

Compte tenu de ce qui suit: template class A { public: static const unsigned int ID = ?; }; Je veux que l’ID génère un identifiant de compilation unique pour chaque T. J’ai considéré __COUNTER__ et la bibliothèque boost PP, mais j’ai échoué jusqu’à présent. Comment puis-je atteindre cet objective? Edit: l’ID doit être utilisable […]

Supprimer la référence dans decltype (retourner T au lieu de T et où T & est le decltype)

(Si vous êtes un professionnel C ++ 11, passez au paragraphe en gras.) Disons que je veux écrire une méthode de modèle qui appelle et retourne le résultat d’un object passé dont le type est le paramètre template: template ReturnType doSomething(const T & foo) { return foo.bar(); // EDIT: Might also be an expression introducing […]

Pourquoi ce modèle variadic nested est-il un argument non valide?

Si je définis un modèle de struct Bar qui accepte un argument de modèle: template <template class> struct Bar {}; Je peux l’instancier en utilisant un template struct tel que Zod : template struct Zod {}; Bar a; Je peux aussi l’instancier en utilisant un modèle de struct nested tel que JKL : struct GHI […]

Comment documenter les modèles C ++ et les métafonctions de modèles avec doxygen?

Existe-t-il des directives sur la manière dont les modèles C ++ et les méta-fonctions de modèle doivent être documentés avec Doxygen? Par exemple: /// @brief metafunction for generation of a map of message types to /// their associated callbacks. /// @tparam Seq the list of message types template struct generate_callback_map { typedef typename mpl::transform< Seq […]

Spécialisation du modèle de classe: classement partiel et synthèse de fonction

Les règles pour choisir quelle spécialisation de modèle de classe est préférable impliquent de réécrire les spécialisations dans des modèles de fonction et de déterminer quel modèle de fonction est plus spécialisé via les règles de classement pour les modèles de fonction [temp.class.order]. Considérez cet exemple, alors: #include template struct voider { using type = […]

Dans quel dossier dois-je mettre des modèles partiels partagés «globaux»?

J’utilise Ruby on Rails 3.0.7 et je prévois d’utiliser des modèles partiels. Toutes les classes de mon application utiliseraient les mêmes partiels. Je dois donc décider où trouver tout cela. Est-ce une bonne idée de mettre des templates partiels partagés “globaux” dans le dossier lib ? Si non, quelle est la pratique courante de choisir […]

Comment puis-je forcer une instance particulière d’un modèle C ++ à instancier?

Voir le titre. J’ai un template Je veux forcer une instance particulière d’un modèle à instancier. Comment puis-je faire cela? Plus précisément, pouvez-vous forcer une classe de modèle abstraite à instancier? Je pourrais élaborer comme j’ai la même question. Dans mon cas, je construis une bibliothèque, certaines implémentations de gabarits sont volumineuses et contiennent beaucoup […]

Template dans le template: pourquoi “` >> “devrait être`>> ‘dans une liste d’arguments nesteds

Je sais que lorsque nous utilisons un modèle dans un autre modèle, nous devrions l’écrire comme suit: vector<pair > s; et si on l’écrit sans l’espace: vector<pair> s; nous aurons une erreur: `>> ‘devrait être`>>’ dans une liste d’argument de gabarit nestede Je vois que c’est compréhensible, mais je ne peux pas m’empêcher de me […]