#include <iostream>
#include <memory> // for unique_ptr
using namespace std;
struct Thing {
bool isObscure;
Thing()
: isObscure(true) { }
Thing(bool obscure)
: isObscure(obscure) { }
};
namespace std {
void explain(shared_ptr<Thing> thing) {
if (thing->isObscure) {
cout << "https://w...content-available-to-author-only...o.in/search?q=define%3Aobscure"
<< endl;
}
}
}
int main() {
std::shared_ptr<Thing> obscure = make_shared<Thing>();
std::explain(obscure);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PiAvLyBmb3IgdW5pcXVlX3B0cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFRoaW5nIHsKCWJvb2wgaXNPYnNjdXJlOwoJVGhpbmcoKSAKCTogaXNPYnNjdXJlKHRydWUpIHsgfQoJCglUaGluZyhib29sIG9ic2N1cmUpCgk6IGlzT2JzY3VyZShvYnNjdXJlKSB7IH0KfTsKCm5hbWVzcGFjZSBzdGQgewoJdm9pZCBleHBsYWluKHNoYXJlZF9wdHI8VGhpbmc+IHRoaW5nKSB7CgkJaWYgKHRoaW5nLT5pc09ic2N1cmUpIHsKCQkJY291dCA8PCAiaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5vLmluL3NlYXJjaD9xPWRlZmluZSUzQW9ic2N1cmUiCgkJCSAgICAgPDwgZW5kbDsKCQl9Cgl9Cn0KCmludCBtYWluKCkgewoJc3RkOjpzaGFyZWRfcHRyPFRoaW5nPiBvYnNjdXJlID0gbWFrZV9zaGFyZWQ8VGhpbmc+KCk7CglzdGQ6OmV4cGxhaW4ob2JzY3VyZSk7CgoJcmV0dXJuIDA7Cn0=