问题标签 [pass-by-rvalue-reference]

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 投票
1 回答
64 浏览

c++11 - 如何同时接受右值和左值非常量参数类型

我反复遇到接受非常量引用参数的问题,因为似乎采用右值参数会阻止接受左值,反之亦然。这是一个例子

但是当我尝试调用 read 时,如果我尝试两种不同的调用约定,我会遇到问题

我遇到的问题是,如果我将参数更改为非常量右值,那么我就不能再传递左值了。我是否注定总是提供一个采用右值引用类型并简单地调用左值覆盖的覆盖(或模板)?

0 投票
3 回答
886 浏览

c++ - 在 C++ 函数参数中使用 & 运算符:按右值引用传递

我对这段代码片段感到有点惊讶!调用者正在传递值,但函数如何处理其地址?

如果有人详细解释会很有帮助。谢谢你。

0 投票
2 回答
77 浏览

java - 只为私有成员传递值

我正在创建一个类,其中一个数组作为其私有成员和 getter,setter 方法。我想使用主函数中的数组为该数组设置一个值。当我在主函数中操作数组时,它不应该影响该类中存在的数组。

我试过这段代码,但这里的数组是被操纵的

我预计 :

但实际输出是:

0 投票
2 回答
72 浏览

c++ - 右值重载?

下面是演示问题的代码:

输出:

你能解释一下原因吗?我们有一个 X&& 类型的变量和这个类型的重载,但是这个重载没有被调用。

0 投票
3 回答
1100 浏览

c++ - C++ 标准是否保证插入关联容器失败不会修改右值引用参数?

C++ 标准是否保证插入关联容器失败不会修改右值引用参数?

0 投票
1 回答
154 浏览

c++ - 在转发引用上调用自定义类型转换运算符时不起作用(当对象按值传递时起作用)

我无法理解这个错误的本质,所以如果标题可以更好,请原谅我。此代码无法编译:

故障线是constexpr int i = index;,错误是“表达式未计算为常数”。

为什么是这样?我希望value_as_type<int>调用对象的转换运算符。最令人困惑的是,如果 lambda 采用auto index而不是auto&& index.

在线演示:https ://godbolt.org/z/TffIIn

0 投票
3 回答
184 浏览

javascript - Array Push 'Different Info' Results in Pushing Same First Iteration For Every Iteration

I am trying to notify user about his medication 3 times daily So I created:

But there is a weird bug that when pushing to array it saves the first date for every iteration not adding 8 hours to it every time, that's so weird!

How Array.push is working?

Is JavaScript too fast in creating the array so the first loop is not working but the second is working?

CodePen: https://codepen.io/microsmsm-the-flexboxer/pen/BaypYVO

Edit:

Same Snipped I am using after answers is not working

https://codepen.io/microsmsm-the-flexboxer/pen/KKwaoeM

enter image description here

enter image description here

0 投票
1 回答
71 浏览

c++ - 将输入参数作为右值引用传递?

将参数作为右值引用传递只是为了清楚地表明您将要操纵参数是否是一个好主意?有点像 const 正确性的反面。

例如,这个函数接受一个字符串向量,以某种方式对其进行操作并返回一个布尔值:

现在如果调用者想用左值调用这个函数,他必须使用std::move()并承认这个向量会被弄乱。这应该可以防止意外的副作用。

澄清:
所做 的操作isThisSomething只是一些内部逻辑的一部分,对调用者来说似乎是无稽之谈。

0 投票
2 回答
209 浏览

c++ - 我可以禁止临时对象作为参数吗?

假设我有这个功能:

如果我使用临时对象调用该函数,是否可以仅使用已构造的对象调用此函数并让 Visual Studio 引发编译错误?

0 投票
2 回答
60 浏览

c++ - 为什么不能在函数之间直接传递右值引用参数?

我的代码如下:

当我编译上面显示的代码时,我得到了一些编译错误: 在此处输入图像描述

似乎strinB::send函数已更改为左值。然后我改变了 的实现B::send,比如:

一切都很顺利,但是这个程序的输出让我更加困惑。输出如下: 在此处输入图像描述

为什么参数 str 是一个右值引用,但我不能A::sendByRvalue直接将它传递给函数std::move