plantilla de plantilla c ++?

He logrado crear una clase preperty con todo lo que esperamos de una. Quiero decir que cuando lo usas no necesitas llamar a funciones solo usandooperator = hará todo el trabajo. pero solo hay una cosa, supongo que sería bueno si pudiéramos resolver:

template <class T, class X,void (T::*setFunc)(const X&),const X& (T::*getFunc)()const> class property
{ 
    T* const owner;
    X data;
    friend T;
    property(T*const  pOwner) : owner (pOwner)
    {
    }
public:
    property& operator = (const X& input){(owner->*setFunc)(input);return *this;}
    operator const X&()const {return (owner->*getFunc)();}
};

struct c
{
protected:
    void setInt(const int& data);
    const int& getInt() const;
public:
    c();
    property<c, int ,&setInt,&getInt> myInt;
};

c::c() : myInt(this)
{
}

void c::setInt(const int& data)
{
    myInt.data = data;
}
const int& c::getInt() const
{
    return myInt.data;
}

a propiedad de clase @see tiene 4 argumentos y el primer argumento es el tipo de clase en sí. Me gustaría saber si podríamos hacer algo para extraer el tipo de clase de las necesidades de propiedad de punteros de dos funciones. algo comoproperty <int, &setInt, &getInt> myInt;.

¿Conoce alguna forma de eliminar el primer parámetro de plantilla?

Respuestas a la pregunta(4)

Su respuesta a la pregunta