In this minimal example I have a class A
with an operator +
defined outsise of it:
template<class T> class A {};
template<class T1, class T2> void operator+(A<T1> a, A<T2> b) {}
template<class T> class B : public A<T> {};
int main(int, char**) {
B a, b;
a + b;
return 0;
}
I've tried to create an implicit conversion from B
to A
but it requires the operator+
to be a friend
of A
and be defined inside A
which will cause problems when more than one instance of A<...>
gets instantiated.
So, is there any other way to do this without having to define the operator+
again?
Thank you in advance for any help.
Aucun commentaire:
Enregistrer un commentaire