如果P不是引用类型:如果A是引用类型,则类型推导将忽略A类型的引用限定符

时间:2013-12-25 11:01:33

标签: c++11 argument-deduction

我正在学习模板参数演绎的东西,我已经多次读过< 14.8.2.1从函数调用>(C ++ 11 draft)推导模板参数,我认为它错过了一条规则:
如果P不是引用类型:如果A是引用类型,则类型推导将忽略A类型的引用限定符。


一定是我的错,但我不知道它在哪里。

1 个答案:

答案 0 :(得分:2)

A是函数参数的类型。函数参数是表达式,表达式从不具有引用类型。假设您有int i;int &r = i;。表达式i和表达式r都只有int类型,并且是左值。类型int &都没有。在某些情况下,使用名称而不是表达式(decltype对特定的语法结构有特殊的例外,它们不被视为表达式),在这种情况下,区别很重要,但使用作为函数参数的对象不是其中之一。