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