Cześć :)
Weźmy taką definicję:
template <typename T>
class SmartPtr{
public:
....
inline friend bool operator==(const SmartPtr& lhs, const T* rhs){}
Pytania:
- Dlaczego autor zdecydował się tu na funkcję inline?
- Dlaczego ten operator jest zaprzyjaźnianiy, skoro jest składową klasy zatem powinien mieć dostęp.
- Dlaczego operator przyjmuje dwa argumenty, skoro jest definiowany w klasie, to domyślnie operandem lewostronnym jest *this?