我看到一些代码示例,其中用于实例化模板函数的类型std::declval被指定为引用类型而不仅仅是类型,如下所示:
std::declval<T &>()
Run Code Online (Sandbox Code Playgroud)
与以下相反:
std::declval<T>()
Run Code Online (Sandbox Code Playgroud)
T某种类型在哪里。我忽略了为什么可以选择引用符号而不是普通类型的微妙之处。有人可以向我解释一下吗?
我知道它std::declval会扩展为,typename std::add_rvalue_reference<T>::type但我仍然不明白为什么人们会通过引用类型而不是普通类型本身来实例化后者。