#include <iostream>

namespace mine {
class Marker {
public:
     friend std::ostream& operator<<(std::ostream& out, const Marker& marker);
     friend std::ostream& operator<<(std::ostream& out, Marker* marker);
};

inline std::ostream& operator<<(std::ostream& out, const Marker& marker) {
     out << "Marker";
     return out;
}

inline std::ostream& operator<<(std::ostream& out, Marker* marker) {
     out << *marker;
     return out;
}
} // namespace mine

int main() {
  mine::Marker marker;
  mine::Marker* m = &marker;

  std::cout << m << "\n";
}