据我了解,双方decltype并auto会尝试找出的东西是什么类型.
如果我们定义:
int foo () {
return 34;
}
Run Code Online (Sandbox Code Playgroud)
然后这两个声明都是合法的:
auto x = foo();
cout << x << endl;
decltype(foo()) y = 13;
cout << y << endl;
Run Code Online (Sandbox Code Playgroud)
你能否告诉我decltype和之间的主要区别auto是什么?
是
auto x = initializer;
Run Code Online (Sandbox Code Playgroud)
相当于
decltype(initializer) x = initializer;
Run Code Online (Sandbox Code Playgroud)
要么
decltype((initializer)) x = initializer;
Run Code Online (Sandbox Code Playgroud)
还是两个?