Załóżmy następującą sytuację:
class KLASA
{
//Zawartość klasy.
};
KLASA& operator@ (KLASA& K1,KLASA& K2)
{
//Definicja operatora @.
}
gdzie @ jest dowolnym operatorem dwuargumentowym oraz, że nie znam implementacji klasy KLASA.
Jak w takiej sytuacji rozpoznać, co zwraca operacja
K1 @ K2
, gdzie K1 i K2 są obiektami klasy KLASA? Chodzi mi konkretnie o rozpoznanie, czy operator @ zwraca referencję do obiektu K1, czy referencję do obiektu K2 czy też po prostu wartość nie będącą referencją? Czy jest to w ogóle możliwe?
Chodzi mi o uniwersalną metodę, która działałaby zarówno dla typów wbudowanych jak i definiowanych przez użytkownika.