是否有支持Rvalues的指针版本的ref?

时间:2015-03-13 12:32:21

标签: c++ pointers reference ref rvalue

这是关于ref合并为一个的两个问题:

  1. 我可以在右值上使用ref吗?显然,作为程序员,我有责任确保它比任何调用代码都更长。
  2. 是否有ref的指针版本?
  3. 这两个粗略问题的目标在这个粗略的答案中实现:https://stackoverflow.com/a/29031944/2642059我只想创建指向vector::data rvalue的指针,而不是创建temp变量。< / p>

1 个答案:

答案 0 :(得分:4)

  1. 不,界面会阻止,因为您链接的参考显示。使用左值引用时出现过载;采用 rvalue 引用的那个被删除。很难想象如何能够对对象的生命周期负责,而无法通过左值访问它。

  2. 那将是一个指针。 reference_wrapper的目的是允许引用像值一样传递(常规引用不能),同时保留引用的语法(通过使用指针而丢失)。如果你想按值传递一个指针,并让它像一个指针,那么只需使用一个指针。

  3.   

    我宁愿创建指向vector::data rvalue 的指针而不是创建临时变量。

    那将是指向临时的指针。在您可以对其执行任何操作之前,临时将被销毁,使指针无效。正如您所说,您需要对其生命周期负责,您可以通过创建变量来完成。完成后,您有一个左值