#include <iostream>
using namespace std;
class C {
private:
int * p;
public:
C() : p(0) {}
operator bool() const {cout << "bool() const\n"; return p != 0;}
//operator bool() {cout << "bool()\n"; return p != 0;}
operator int*() const {cout << "int*() const\n"; return p;}
operator int**() {cout << "int**()\n"; return &p;}
};
void test() {
C c;
bool b = c;
int* p = c;
int** pp = c;
}
int main() {
test();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQyB7IApwcml2YXRlOiAKICAgIGludCAqIHA7IApwdWJsaWM6IAogICAgQygpIDogcCgwKSB7fSAKICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCAgIHtjb3V0IDw8ICJib29sKCkgY29uc3RcbiI7IHJldHVybiBwICE9IDA7fSAKICAgIC8vb3BlcmF0b3IgYm9vbCgpICAgICAgICAge2NvdXQgPDwgImJvb2woKVxuIjsgcmV0dXJuIHAgIT0gMDt9IAogICAgb3BlcmF0b3IgaW50KigpIGNvbnN0ICB7Y291dCA8PCAiaW50KigpIGNvbnN0XG4iOyByZXR1cm4gcDt9IAogICAgb3BlcmF0b3IgaW50KiooKSAgICAgICB7Y291dCA8PCAiaW50KiooKVxuIjsgcmV0dXJuICZwO30gCn07ICAgCgp2b2lkIHRlc3QoKSB7IAogICAgQyBjOyAKICAgIGJvb2wgYiA9IGM7IAogICAgaW50KiBwID0gYzsgCiAgICBpbnQqKiBwcCA9IGM7IAp9CgppbnQgbWFpbigpIHsKCXRlc3QoKTsKCXJldHVybiAwOwp9