【发布时间】:2013-05-27 14:09:03
【问题描述】:
我知道下面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)功能的工作方式完全相同。