1

使用 boost scoped_ptr 的 C++ 多态性之后,我想了解 C++ 参数推导的规则。例如:

  1. 使用智能指针和容器时的 C++ 多态替换规则
  2. 常量和非常量参数之间的自动转换
  3. 什么时候可以将临时对象作为参考传递?
  4. 模板参数推导的规则有何不同。

如果标准中有相关部分,您可以指出这也会有所帮助。

4

1 回答 1

0

我认为这个问题太宽泛了,我不明白所有问题都是什么。杰尔是我的镜头:

  1. 模板推导不关心基类或转换。它推导出一个静态类型。只有当没有直接匹配时,它才会尝试转换是否可以解决这个问题,并且像往常一样它只会应用一次转换。例如,它传递的类型是一个原始指针,而预期的类型是一个智能指针,它可以从它应该找到的内置指针隐式转换。
  2. 对于值类型,常量被忽略。对于引用或指针类型,非常量指针或引用可以转换为相应的非常量版本。然而,推导的 tupe 将没有 cv 限定符,尽管可以使用 cv 限定符类型显式实例化相同的函数。你推断出T&&适用不同的规则。
  3. 临时只能绑定到const合格的左值引用和右值引用。这在语言中是通用的。
  4. 这个对比是什么?
于 2012-03-24T22:11:39.343 回答