- #include <iostream> 
- using namespace std; 
-   
- auto l1 = [](int a){cout<<"int\n";}; 
- auto l2 = [](float a){cout<<"float\n";}; 
-   
- 	template<typename T1 = decltype(l1) , typename T2=decltype(l2) > 
- 	class A : T1, T2 
- 	{ 
- 	    public: 
- 	    A(): T1(l1), T2(l2){}; 
- 	    using T1::operator(); 
- 	    using T2::operator(); 
-   
- 	}; 
-   
- int main() { 
- 	// your code goes here 
- 	A<decltype(l1), decltype(l2)> a; 
- 	a(0); 
- 	a(0.0f); 
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYXV0byBsMSA9IFtdKGludCBhKXtjb3V0PDwiaW50XG4iO307CmF1dG8gbDIgPSBbXShmbG9hdCBhKXtjb3V0PDwiZmxvYXRcbiI7fTsKCQoJdGVtcGxhdGU8dHlwZW5hbWUgVDEgPSBkZWNsdHlwZShsMSkgLCB0eXBlbmFtZSBUMj1kZWNsdHlwZShsMikgPgoJY2xhc3MgQSA6IFQxLCBUMgoJewoJICAgIHB1YmxpYzoKCSAgICBBKCk6IFQxKGwxKSwgVDIobDIpe307CgkgICAgdXNpbmcgVDE6Om9wZXJhdG9yKCk7CgkgICAgdXNpbmcgVDI6Om9wZXJhdG9yKCk7CgkJCgl9OwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglBPGRlY2x0eXBlKGwxKSwgZGVjbHR5cGUobDIpPiBhOwoJYSgwKTsKCWEoMC4wZik7CglyZXR1cm4gMDsKfQ==