37得票1回答
使用 std::move(*this) 是一个好的模式吗?

为了让这段带有C++11引用限定符的代码能够按预期工作,我不得不引入一个std::move(*this),这听起来不太对。#include<iostream> struct A{ void gun() const&{std::cout << "...

32得票1回答
如何在特定索引处更改NSMutableArray的值

[array objectAtIndex:i] 不能作为 L 值使用,因此不能用于设置索引 i 的对象。

31得票6回答
一个 rvalue 结构的成员是 rvalue 还是 lvalue?

调用返回结构体的函数是rvalue表达式,但它的成员呢? 这段代码在我的g++编译器上运行良好,但gcc报错显示"需要左值作为赋值运算符的左操作数":struct A { int v; }; struct A fun() { struct A tmp; return ...

31得票3回答
为什么在C语言中,前置递增运算符会产生rvalue?

在C++中,前置自增运算符返回左值,因为自增后的对象本身被返回,而不是其副本。 但在C中,它返回右值。为什么?

31得票3回答
字面字符串和函数返回值是左值还是右值?

想知道字面字符串是左值还是右值。其他字面值(如int、float、char等)是否为左值或右值? 函数的返回值是左值还是右值? 如何区分它们?

29得票3回答
为什么给 substr 调用的结果赋值不会导致编译错误?

我刚刚发现了一个最令人困惑的错误,但我不明白为什么编译器没有给我标记。如果我写下以下内容:string s = "abcdefghijkl"; cout << s << endl; s.substr(2,3) = "foo"; s.substr(8,1) = '.';...

27得票2回答
C++0x中将const RValue引用作为函数参数

我试图理解为什么有人会编写一个接受const rvalue引用的函数。 在下面的代码示例中,const rvalue引用函数(返回“3”)有什么用途。 并且为什么重载决议喜欢const Rvalue而不是const LValue引用函数(返回“2”)。#include <string&...

25得票5回答
为什么字面量和临时变量不是左值?

我读到过lvalues是“具有定义存储位置的事物”。 还有,字面量和临时变量不是lvalues,但没有给出这个说法的原因。 是因为字面量和临时变量没有定义的存储位置吗?如果是,那么如果不在内存中,它们在哪里呢? 我认为“定义的”在“定义存储位置”中有一定的意义,请告知是否如此。

25得票5回答
解引用指针是有效的左值吗?

假设定义如下:int i = 10; int *p = &i; 为什么 *p 在这里是一个有效的左值:*p+=10; *p不应该评估为存储在&i处的int值,即10,因此会生成“Not an lvalue”错误吗?

24得票6回答
需要左值做为赋值运算符的左操作数

为什么我会收到lvalue required as left operand of assignment 如何通过单个字符串比较来解决这个问题?我该如何在C中修复它?if (strcmp("hello", "hello") = 0) 谢谢!