#include <iostream>
template<class T>
struct struct_t
{
struct_t(const T& x):m_value(x)
{
}
T m_value;
};
template<class T>
void test_t(const struct_t<T>& x)
{
std::cout << "void test_t(const struct_t<T>& x)" << std::endl;
}
template<class T>
void test_t(const T& x)
{
std::cout << "void test_t(const T& x)" << std::endl;
test_t(struct_t<T>(x));
}
int main()
{
test_t(10);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8Y2xhc3MgVD4Kc3RydWN0IHN0cnVjdF90CnsKICAgIHN0cnVjdF90KGNvbnN0IFQmIHgpOm1fdmFsdWUoeCkKICAgIHsKICAgIH0KICAgIFQgbV92YWx1ZTsKfTsKCgp0ZW1wbGF0ZTxjbGFzcyBUPgp2b2lkIHRlc3RfdChjb25zdCBzdHJ1Y3RfdDxUPiYgeCkKewoJc3RkOjpjb3V0IDw8ICJ2b2lkIHRlc3RfdChjb25zdCBzdHJ1Y3RfdDxUPiYgeCkiIDw8IHN0ZDo6ZW5kbDsKfQoKdGVtcGxhdGU8Y2xhc3MgVD4Kdm9pZCB0ZXN0X3QoY29uc3QgVCYgeCkKewoJc3RkOjpjb3V0IDw8ICJ2b2lkIHRlc3RfdChjb25zdCBUJiB4KSIgPDwgc3RkOjplbmRsOwoJdGVzdF90KHN0cnVjdF90PFQ+KHgpKTsKfQoKaW50IG1haW4oKQp7CiAgICB0ZXN0X3QoMTApOwp9