template<class T> struct CObject
{
CNexusObject * Object = nullptr;
CObject(){}
CObject(CNexusObject * o) : Object(o)
{
}
bool operator == (const CNexusObject * o) const
{
return Object && Object == o;
}
T * operator->()
{
return dynamic_cast<T *>(Object);
}
operator T * () const
{
return dynamic_cast<T *>(Object);
}
};
int main()
{
CObject<CNexusObject> a;
CNexusObject * b = nullptr;
if(a == b) // нужно чтобы вызывался мой оператор ==, вместо этого: error C2666: 'CObject<CNexusObject>::operator ==': 2 overloads have similar conversions
{
}
}
как разрулить?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.