fork download
  1. #include <iostream>
  2. #include <typeinfo>
  3. #include <type_traits>
  4. using namespace std;
  5.  
  6. double u;
  7. float v;
  8.  
  9. template<typename U, typename V>
  10. decltype(u + v) f(U u, V v) { return 0; }
  11.  
  12. template<typename U, typename V>
  13. auto g(U u, V v) -> decltype(u + v) { return 0; }
  14.  
  15. int main() {
  16.  
  17. cout << typeid(f(1, 2)).name() << endl; // double
  18. cout << typeid(g(1, 2)).name() << endl; // int
  19.  
  20. return 0;
  21. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
d
i