je tente de définir une classe A
comme suit:Type de variable membre doit dépendre le type d'argument constructeur
template< typename T >
class A
{
public:
A(T elem)
: _elem(elem)
{}
private:
TYPE _elem; // "TYPE" should be either "T" in case "elem" is an r-value or "T&" in case "elem" is an l-value.
};
Ici, je veux _elem
avoir soit le type T
dans le cas où l'argument du constructeur elem
est un r-value ou le type T&
dans le cas elem
est une valeur de l.
Est-ce que quelqu'un sait comment cela peut être implémenté?
Je ne suis pas assez intelligent pour écrire ceci pour vous, mais vous y parvenez en utilisant template * specialization *. Upvoted pour attirer l'attention. – Bathsheba
J'ai aussi eu besoin de cela (en écrivant des classes de vue) ... –