括号中函数的decltype是什么?

时间:2013-07-20 12:51:37

标签: c++11 decltype

此代码

#include<functional>

int foo(char);

int main()
{
    std::function<decltype((foo))> f;
}

给出错误:

aggregate ‘std::function<int (&)(char)> f’ has incomplete type
and cannot be defined

在gcc-4.7.2中。我以为它会编译。

我知道我可以删除额外的括号以使其正常工作,但我正在努力了解正在发生的事情。

我不明白为什么decltype会添加引用。我认为括号中的函数名是prvalue,因此decltype在不添加引用的情况下推断出类型。

0 个答案:

没有答案