2 votes

Encapsuler un type simple à l'aide des modèles C++.

Je cherche à ajouter des fonctionnalités à tous les types simples en C++.

Je veux écrire une seule classe modèle qui prend comme paramètre modèle le type à encapsuler et qui a ensuite tous les opérateurs définis pour que la classe encapsulée fonctionne exactement comme le type simple qu'elle encapsule.

Quelque chose comme ça :

template <typename _SimpleType_>
class Attribute
{
public:
    Attribute(_SimpleType_ value){ m_value = value; }
    ~Attribute(){}

    // Cast
    operator _SimpleType_() { return(m_value); }

    // Comparisons
    bool operator==(const a& other) const { return a == m_value; }
    etc...

private:
   _SimpleType_ m_value;
}

// Use like:
Attribute<int> i = 20;

while(i)
{
   if((i & 0xF) == 0)
   {
      i >>= 2;
   }

   i--;
}  etc...

La question est la suivante : je suis sûr qu'il y a un tas de nuances qui doivent être traitées et que des opérateurs de modèles spécialisés doivent être écrits ; y a-t-il un endroit où cela a déjà été fait pour que je puisse simplement l'utiliser à la place ?

Boost est trop grand et trop compliqué pour être intégré dans mon projet mais je peux le consulter pour savoir s'il existe une classe de ce type - quel est son nom s'il y en a une ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X