我正在学习decltype
C++ 11。
auto
and的功能decltype
似乎重复了,我不明白为什么我们需要decltype
.
根据wiki的说法,它的主要用途是在泛型编程中,通常很难甚至不可能表达依赖于模板参数的类型。
在泛型编程中,auto
当难以表达类型时我可以使用:
template <typename T>
void MakeAnObject (const T& builder)
{
auto val = builder.MakeObject();
// do stuff with val
}
我不明白为什么decltype
需要。
能做decltype
哪些不能做的事auto
?