首页 > 代码库 > decltype typename
decltype typename
decltype((variable))总是引用类型,但是decltype(variable)只有当variable是引用类型时才是引用类型。
#include <iostream>#include <typeinfo>using std::cin;using std::cout;using std::endl;auto f(auto x){ return x+1;}auto f(auto x,auto y)->decltype(y){ return x-y;} double func(){ cout << "func executed." << endl; return 2.5+3.6;}int main(){ decltype(func()) sum; cout << typeid(sum).name() << endl; const int ci = 0, &cj = ci; decltype(ci) x = 0; decltype(cj) y = x; //decltype(cj) z; // compile error: ‘z’ declared as reference but not initialized cout << typeid(x).name() << endl; cout << typeid(y).name() << endl; int i = 10, *p = &i, &r = i; decltype(r + 0) b; //decltype(*p) c; // compile error: ‘c’ declared as reference but not initialized cout << typeid(b).name() << endl; decltype(i) u; //decltype((i)) v; // compile error: ‘v’ declared as reference but not initialized return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。