Witajcie,
w ramach ogromnej nudy, klepię sobie własną bibliotekę do obsługi liczb zespolonych.
Mam klasę:
template <typename T = double>
class Complex {
...
friend std::ostream& operator <<(std::ostream& os, const Complex<T>& c) ;
...
}
Jak teraz udostępnić definicję tej funkcji na zewnętrz deklaracji?
Cos takiego:
template <typename T>
std::ostream& operator <<(std::ostream& os, const Complex<T>& c) {
return os << c.realNum << " " << c.sign << " " << std::abs(c.imaginaryNum) << 'i';
}
powoduje błąd linkera. Teoretycznie rozwiązaniem jest umieszczenie definicji w deklaracji, jednak chciałbym poznać sposób, dzięki któremu będzie to działało na zewnątrz definicji.