Я пытаюсь определить класс A следующим образом:
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.
};
Здесь я хочу, чтобы _elem имел либо тип T, если аргумент конструктора elem является значением r, либо типом T& в случае elem является l-значением.
Кто-нибудь знает, как это можно реализовать?