#include <iostream>
#include <type_traits>
#include <climits> // CHAR_BIT
template<class T>
void f(){
std::cout << sizeof(T) * CHAR_BIT << "-";
if(std::is_integral<T>::value){
if(std::is_signed<T>::value)
std::cout << "S";
else
std::cout << "U";
std::cout << "-";
if(std::is_same<T, char>::value)
std::cout << "C";
else
std::cout << "I";
}else if(std::is_floating_point<T>::value){
std::cout << "S-F";
}
std::cout << "\n";
}
int main(){
f<int>();
f<char>();
f<bool>();
f<float>();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CiNpbmNsdWRlIDxjbGltaXRzPiAvLyBDSEFSX0JJVAoKdGVtcGxhdGU8Y2xhc3MgVD4Kdm9pZCBmKCl7CiAgc3RkOjpjb3V0IDw8IHNpemVvZihUKSAqIENIQVJfQklUIDw8ICItIjsKICBpZihzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSl7CiAgICAgaWYoc3RkOjppc19zaWduZWQ8VD46OnZhbHVlKQogICAgICAgc3RkOjpjb3V0IDw8ICJTIjsKICAgICBlbHNlCiAgICAgICBzdGQ6OmNvdXQgPDwgIlUiOwogICAgIHN0ZDo6Y291dCA8PCAiLSI7CiAgICAgaWYoc3RkOjppc19zYW1lPFQsIGNoYXI+Ojp2YWx1ZSkKICAgICAgIHN0ZDo6Y291dCA8PCAiQyI7CiAgICAgZWxzZQogICAgICAgc3RkOjpjb3V0IDw8ICJJIjsKICB9ZWxzZSBpZihzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1ZSl7CiAgICBzdGQ6OmNvdXQgPDwgIlMtRiI7CiAgfQogIHN0ZDo6Y291dCA8PCAiXG4iOwp9CgppbnQgbWFpbigpewogIGY8aW50PigpOwogIGY8Y2hhcj4oKTsKICBmPGJvb2w+KCk7CiAgZjxmbG9hdD4oKTsKfQ==