假设有这么一个场景,你需要得到某类型中某函数返回值的类型,然而该函数并没有构造函数:
struct Default
{
Default(const Default &d)
{}
int foo() const
{ return 1; }
};
int main()
{
decltype(std::declval<Default>().foo()) n1 = 1;
//decltype(Default.foo()) n1 = 1; //Default没有构造函数, decltype里面需要是可以计算的表达式
return 0;
}