重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include
#include
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;
}