#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 = ▮
std::cout << m << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKbmFtZXNwYWNlIG1pbmUgewpjbGFzcyBNYXJrZXIgewpwdWJsaWM6CiAgICAgZnJpZW5kIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgTWFya2VyJiBtYXJrZXIpOwogICAgIGZyaWVuZCBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvdXQsIE1hcmtlciogbWFya2VyKTsKfTsKCmlubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvdXQsIGNvbnN0IE1hcmtlciYgbWFya2VyKSB7CiAgICAgb3V0IDw8ICJNYXJrZXIiOwogICAgIHJldHVybiBvdXQ7Cn0KCmlubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvdXQsIE1hcmtlciogbWFya2VyKSB7CiAgICAgb3V0IDw8ICptYXJrZXI7CiAgICAgcmV0dXJuIG91dDsKfQp9IC8vIG5hbWVzcGFjZSBtaW5lCgppbnQgbWFpbigpIHsKICBtaW5lOjpNYXJrZXIgbWFya2VyOwogIG1pbmU6Ok1hcmtlciogbSA9ICZtYXJrZXI7CgogIHN0ZDo6Y291dCA8PCBtIDw8ICJcbiI7Cn0=