fork download
  1. #include <iostream>
  2. #include <type_traits>
  3. #include <climits> // CHAR_BIT
  4.  
  5. template<class T>
  6. void f(){
  7. std::cout << sizeof(T) * CHAR_BIT << "-";
  8. if(std::is_integral<T>::value){
  9. if(std::is_signed<T>::value)
  10. std::cout << "S";
  11. else
  12. std::cout << "U";
  13. std::cout << "-";
  14. if(std::is_same<T, char>::value)
  15. std::cout << "C";
  16. else
  17. std::cout << "I";
  18. }else if(std::is_floating_point<T>::value){
  19. std::cout << "S-F";
  20. }
  21. std::cout << "\n";
  22. }
  23.  
  24. int main(){
  25. f<int>();
  26. f<char>();
  27. f<bool>();
  28. f<float>();
  29. }
Success #stdin #stdout 0s 2828KB
stdin
Standard input is empty
stdout
32-S-I
8-S-C
8-U-I
32-S-F