问题标签 [rvalue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3124 浏览

c++ - 一个 VS2010 错误?允许在没有警告的情况下绑定非常量引用到右值?

  1. GCC 是给出编译错误std::string&的好方法:从临时类型的非 const 类型引用的无效初始化std::string
  2. VS2008 还不错,因为至少它给出了一个编译警告:警告 C4239:使用了非标准扩展:'initializing':从转换std::string为非std::string &const 引用只能绑定到左值
  3. 问题来了 - VS2010(SP1) 编译良好,没有任何错误或警告,为什么??!!我知道VS2010 中的右值引用可用于与右值绑定,但我没有使用&&,而是在演示代码中,我只是使用非 const 左值引用!

有人能帮我解释一下这里 VS2010 的行为吗?它是一个错误!?谢谢

0 投票
2 回答
971 浏览

c++ - 将可修改的右值引用绑定到可修改的左值

我有3个问题:

  1. 我可以将左值直接绑定到右值引用吗?

  2. 那个存在的对象会发生什么std::move()

  3. std::move 和 有什么区别std::forward

0 投票
5 回答
3747 浏览

c++ - 为什么右值没有地址?

为什么右值没有内存地址?它们是在程序执行时没有加载到 RAM 中还是引用存储在处理器寄存器中的值?

0 投票
1 回答
156 浏览

c++ - 可以将数组或函数左值转换为右值吗?

根据 C++ 标准 2003:

数组和函数不能转换为右值是什么意思?

0 投票
5 回答
1163 浏览

perl - Perl 中有哪些语法糖可以减少 l/rvalue 运算符与 if 语句的代码?

那里有很多,因为 Perl 是一种非常含糖的语言,但任何语言中最常用的语句是 if 语句和设置值的组合。我想我已经找到了很多,但仍有一些差距。最终,目标是不必多次编写变量名:

这是我到目前为止所拥有的:

有人也有一篇关于“秘密操作员”的非常有趣的文章,如下所示:

但是,我发现列表中缺少的是:

还有什么值得补充的吗?还有哪些其他条件集变量可用于减少代码?还缺少什么?

0 投票
2 回答
453 浏览

c++ - 从 lambda 返回对象/右值引用的首选形式

如果我有一个实现移动语义的类:

在 lambda 中返回 BigObject 的正确方法是什么?

或者

或者

或其他形式?

谢谢。

0 投票
5 回答
713 浏览

c++ - 默认情况下函数返回值是常量(右值)吗?

我正在学习右值引用,教程告诉我:

很明显,在 x 和临时对象之间交换资源指针(句柄),然后让临时对象的析构函数破坏 x 的原始资源是可以的,而且效率更高。

换句话说,在赋值右侧是 rvalue 的特殊情况下,我们希望复制赋值运算符像这样操作。

那么,这是否意味着函数的返回值在默认情况下始终是常量,因此是右值?如果是:它们总是不变的,还是也有例外?

0 投票
5 回答
1380 浏览

c++ - 会发生左值到右值的转换吗?

C++ 标准 (4/5) 左值到右值的转换不是在一元 & 运算符的操作数上完成的。

例如:

在上述情况下,都是p&x值吗?或者什么是合适的例子?

编辑:

那这个呢?

我确定此语句中不会有任何转换,但我很困惑 & 运算符如何参与其中?

0 投票
3 回答
139 浏览

c - C中的左值,右值和数组初始化

能够定义一个数组,例如

非常方便,但是,数组 a 是一个 r 值,因此我不能随后更改 a 中的值,例如

想要这样做的背景是编写一堆单元测试,我在其中将数组输入函数并测试输出。我正在使用不同的输入对同一个函数进行测试,并且希望避免我的输入数组必须具有唯一的名称,例如我必须这样做:

另外,如果我想将一个指向数组的指针传递给一个函数,我必须像这样第一次转换它:

像这样传递一个指向 r 值的指针是行不通的:

我的问题是是否有任何其他方法可以轻松初始化一组值而不受这些限制的影响?(特别是为了使编写许多类似的单元测试变得容易,而每个测试都没有一组唯一的数组名称)

0 投票
3 回答
115 浏览

c++ - C++ 中的类型转换和引用

请看下面的调用和对应的函数,

writePage 声明如下

writePage 接受长引用和 char* 引用。上面没有编译,它显示以下错误

任何人都可以帮助我,如何处理这个......类型转换正在解决问题,如果我按照以下方式进行代码编译:

问题怎么解决??