To jest denerwujące, mogę napisać funkcję z tymi parametrami/return, ale dlaczego nie mogę zdefiniować operatora, aby to zrobić?Dlaczego nie mogę używać dwóch ptr w przeciążeniu operatora?
-edit- w rzeczywistości próbuję przeciążać <<
poniżej jest tylko w celach informacyjnych.
// C2803.cpp
// compile with: /c
class A{};
bool operator< (const A *left, const A *right); // C2803
// try the following line instead
// bool operator< (const A& left, const A& right);
GCC błąd
error: ‘bool operator<(const A*, const A*)’ must have an argument of class or enumerated type
Jaka jest Twoja rzeczywista sytuacja, dla której potrzebujesz tego porównania? –
@Kerrek: Mój kod używa ostringstream. Teraz zdaję sobie sprawę, że potrzebuję stosu i aktualizacji o. Nie mogę używać referencyjnych referencji Bc, nie zmieniaj. Więc potrzebuję ptr. Napisałem już dużo kodu i chciałbym, aby << rhs kontynuował pracę. Wiele zmiennych rhs to także ptr. –
Nie możesz zamiast tego napisać 'o << * rhs'? –