fork download
  1. #include <type_traits>
  2. #include <iostream>
  3. #include <iomanip>
  4.  
  5. #define NOQUAL_DECLTYPE(x) std::remove_cv_t<std::remove_reference_t<decltype((x))>>
  6.  
  7. int main(void) {
  8. std::cout << std::boolalpha << std::is_same<char, NOQUAL_DECLTYPE('a')>::value << "\n";
  9. std::cout << std::boolalpha << std::is_same<int, NOQUAL_DECLTYPE('ab')>::value << "\n";
  10. std::cout << std::boolalpha << std::is_same<int, NOQUAL_DECLTYPE(42)>::value << "\n";
  11. std::cout << std::boolalpha << std::is_same<char[4], NOQUAL_DECLTYPE("abc")>::value << "\n";
  12. std::string s = "abc";
  13. std::cout << std::boolalpha << std::is_same<std::string, NOQUAL_DECLTYPE(s)>::value << "\n";
  14. }
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
true
true
true
true
true