#include <iostream>
template<typename tType>
class A {
public:
A () {}
template<typename...tTypes> A (tTypes...pArgs) {
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
};
class B {
public:
template<typename tType>
operator A<tType> () const {
std::cout << __PRETTY_FUNCTION__ << std::endl;
return A<tType>();
}
};
int main() {
B b;
A<float> a = b;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8dHlwZW5hbWUgdFR5cGU+CmNsYXNzIEEgewpwdWJsaWM6CglBICgpIHt9CgkKCXRlbXBsYXRlPHR5cGVuYW1lLi4udFR5cGVzPiBBICh0VHlwZXMuLi5wQXJncykgewoJCXN0ZDo6Y291dCA8PCBfX1BSRVRUWV9GVU5DVElPTl9fIDw8IHN0ZDo6ZW5kbDsKCX0KfTsKCmNsYXNzIEIgewpwdWJsaWM6Cgl0ZW1wbGF0ZTx0eXBlbmFtZSB0VHlwZT4KCW9wZXJhdG9yIEE8dFR5cGU+ICgpIGNvbnN0IHsKCQlzdGQ6OmNvdXQgPDwgX19QUkVUVFlfRlVOQ1RJT05fXyA8PCBzdGQ6OmVuZGw7CgkJcmV0dXJuIEE8dFR5cGU+KCk7Cgl9Cn07CgppbnQgbWFpbigpIHsKCUIgYjsKCUE8ZmxvYXQ+IGEgPSBiOwp9