#include <cstdio> // for printf.
#include <cstdint> // for int32_t.
template < typename U>
auto kuso( U) - > void ;
auto kuso( bool b) - > void
{
std:: printf ( "in auto kuso(bool) -> void\n " ) ;
kuso< bool > ( b) ;
}
auto kuso( double r) - > void
{
std:: printf ( "in auto kuso(double) -> void\n " ) ;
kuso< double > ( r) ;
}
template < typename U>
auto kuso( U) - > void
{
std:: printf ( "in auto kuso<U>(U) -> void\n " ) ;
std:: printf ( " sizeof(U) = %u\n " , ( unsigned ) sizeof ( U) ) ;
}
auto main( ) - > int
{
std:: printf ( "--\n " ) ;
kuso( true ) ;
std:: printf ( "--\n " ) ;
kuso( 3.14 ) ;
std:: printf ( "--\n " ) ;
kuso< std:: int32_t > ( 100 ) ;
}
I2luY2x1ZGUgPGNzdGRpbz4JLy8gZm9yIHByaW50Zi4KI2luY2x1ZGUgPGNzdGRpbnQ+CS8vIGZvciBpbnQzMl90LgoKdGVtcGxhdGU8dHlwZW5hbWUgVT4KYXV0byBrdXNvKFUpIC0+IHZvaWQ7CgphdXRvIGt1c28oYm9vbCBiKSAtPiB2b2lkCnsKCXN0ZDo6cHJpbnRmKCJpbiBhdXRvIGt1c28oYm9vbCkgLT4gdm9pZFxuIik7CglrdXNvPGJvb2w+KGIpOwp9CgphdXRvIGt1c28oZG91YmxlIHIpIC0+IHZvaWQKewoJc3RkOjpwcmludGYoImluIGF1dG8ga3Vzbyhkb3VibGUpIC0+IHZvaWRcbiIpOwoJa3Vzbzxkb3VibGU+KHIpOwp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBVPgphdXRvIGt1c28oVSkgLT4gdm9pZAp7CglzdGQ6OnByaW50ZigiaW4gYXV0byBrdXNvPFU+KFUpIC0+IHZvaWRcbiIpOwoJc3RkOjpwcmludGYoIiAgICBzaXplb2YoVSkgPSAldVxuIiwgKHVuc2lnbmVkKXNpemVvZihVKSk7Cn0KCmF1dG8gbWFpbigpIC0+IGludAp7CglzdGQ6OnByaW50ZigiLS1cbiIpOwoJa3Vzbyh0cnVlKTsKCglzdGQ6OnByaW50ZigiLS1cbiIpOwoJa3VzbygzLjE0KTsKCglzdGQ6OnByaW50ZigiLS1cbiIpOwoJa3VzbzxzdGQ6OmludDMyX3Q+KDEwMCk7Cn0K