template do modelo c ++?

eu consegui criar uma turma pré-escolar com tudo o que esperamos de uma. Quero dizer, ao usá-lo, você não precisa chamar funções apenas usandooperator = fará todo o trabalho. mas há apenas uma coisa que acho que seria legal se pudéssemos 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;
}

propriedade @see class possui 4 argumentos e o primeiro argumento é o próprio tipo de classe. Gostaria de saber se poderíamos fazer alguma coisa para extrair o tipo de classe de duas necessidades de propriedade de ponteiros de função. algo comoproperty <int, &setInt, &getInt> myInt;.

ocê conhece alguma maneira de eliminar o primeiro parâmetro do model

questionAnswers(4)

yourAnswerToTheQuestion