- #include <iostream> 
-   
- bool isTrue() 
- { 
-     return false; 
- } 
-   
- class A 
- { 
- public: 
-     A()  
-     { 
-         std::cout << "A() called" << std::endl;  
-     } 
-   
-     A(const A& ref)  
-     {  
-         std::cout << "A(const A& ref) called" << std::endl;  
-     } 
-   
-     A& operator=(const A& ref)  
-     {  
-         std::cout << "A& operator=(const A& ref)" << std::endl; this->member = ref.member; 
-     } 
-   
-     A(char* string): member(10) 
-     { 
-         std::cout << "A(char* string) called" << std::endl; 
-     } 
-   
-     A(int value): member(2) 
-     { 
-         std::cout << "A(value) called" << std::endl; 
-     } 
-   
-     ~A()  
-     {  
-         std::cout <<"destructor called" << std::endl;  
-     } 
-   
-     void check()  
-     { 
-     	std::cout <<"called the " << member << " constructor" << std::endl; 
-     } 
-   
-     int member; 
- }; 
-   
- int main()  
- { 
-     A a = isTrue() ? A("string") : A(10); 
-     a.check(); 
-   
-     return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgoKYm9vbCBpc1RydWUoKQp7CiAgICByZXR1cm4gZmFsc2U7Cn0KCmNsYXNzIEEKewpwdWJsaWM6CiAgICBBKCkgCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJBKCkgY2FsbGVkIiA8PCBzdGQ6OmVuZGw7IAogICAgfQoKICAgIEEoY29uc3QgQSYgcmVmKSAKICAgIHsgCiAgICAgICAgc3RkOjpjb3V0IDw8ICJBKGNvbnN0IEEmIHJlZikgY2FsbGVkIiA8PCBzdGQ6OmVuZGw7IAogICAgfQoKICAgIEEmIG9wZXJhdG9yPShjb25zdCBBJiByZWYpIAogICAgeyAKICAgICAgICBzdGQ6OmNvdXQgPDwgIkEmIG9wZXJhdG9yPShjb25zdCBBJiByZWYpIiA8PCBzdGQ6OmVuZGw7IHRoaXMtPm1lbWJlciA9IHJlZi5tZW1iZXI7CiAgICB9CiAgICAKICAgIEEoY2hhciogc3RyaW5nKTogbWVtYmVyKDEwKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiQShjaGFyKiBzdHJpbmcpIGNhbGxlZCIgPDwgc3RkOjplbmRsOwogICAgfQoKICAgIEEoaW50IHZhbHVlKTogbWVtYmVyKDIpCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJBKHZhbHVlKSBjYWxsZWQiIDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICB+QSgpIAogICAgeyAKICAgICAgICBzdGQ6OmNvdXQgPDwiZGVzdHJ1Y3RvciBjYWxsZWQiIDw8IHN0ZDo6ZW5kbDsgCiAgICB9CgogICAgdm9pZCBjaGVjaygpIAogICAgewogICAgCXN0ZDo6Y291dCA8PCJjYWxsZWQgdGhlICIgPDwgbWVtYmVyIDw8ICIgY29uc3RydWN0b3IiIDw8IHN0ZDo6ZW5kbDsKICAgIH0KICAgIAogICAgaW50IG1lbWJlcjsKfTsKCmludCBtYWluKCkgCnsKICAgIEEgYSA9IGlzVHJ1ZSgpID8gQSgic3RyaW5nIikgOiBBKDEwKTsKICAgIGEuY2hlY2soKTsKCiAgICByZXR1cm4gMDsKfQ==