6
我知道i
的类型在main()
以下是int&
。这就是为什么它必须被初始化。main()中的'i'类型。为什么它是一个int&?
int& f(){ static int i = 1; return i; }
int main()
{
decltype(f()) i = f();
}
但是用在标准段落5p5
,我的结论是表达f()
已键入int
作为参考被丢弃。
从7.1.6.2p4
,如果表达式f()
是一个左值,考虑到引用是从函数返回中删除的?
请注意,这几乎就是C++ 14'decltype(auto)'特性的工作方式。 – PlasmaHH