这是关于ref
合并为一个的两个问题:
ref
吗?显然,作为程序员,我有责任确保它比任何调用代码都更长。ref
的指针版本?这两个粗略问题的目标在这个粗略的答案中实现:https://stackoverflow.com/a/29031944/2642059我只想创建指向vector::data
rvalue的指针,而不是创建temp
变量。< / p>
答案 0 :(得分:4)
不,界面会阻止,因为您链接的参考显示。使用左值引用时出现过载;采用 rvalue 引用的那个被删除。很难想象如何能够对对象的生命周期负责,而无法通过左值访问它。
那将是一个指针。 reference_wrapper
的目的是允许引用像值一样传递(常规引用不能),同时保留引用的语法(通过使用指针而丢失)。如果你想按值传递一个指针,并让它像一个指针,那么只需使用一个指针。
我宁愿创建指向
vector::data
rvalue 的指针而不是创建临时变量。
那将是指向临时的指针。在您可以对其执行任何操作之前,临时将被销毁,使指针无效。正如您所说,您需要对其生命周期负责,您可以通过创建变量来完成。完成后,您有一个左值。