lvalue
C++: ¿es el valor devuelto un valor L?
Considere este código:
struct foo
{
int a;
};
foo q() { foo f; f.a =4; return f;}
int main()
{
foo i;
i.a = 5;
q() = i;
}
Ningún compilador se queja de ello, ni siquiera Clang. ¿Por qué la línea q() = ... es correcta?
¿Cómo determinar mediante programación si una expresión es rvalue o lvalue en C++?
¿Cuál es la mejor manera de determinar si una expresión es un rvalue o lvalue en C++? Probablemente, esto no es útil en la p ... lue y false de lo contrario.
Ejemplo:
std::string a("Hello");
is_lvalue(std::string()); // false
is_lvalue(a); // true
¿Por qué no es un error del compilador asignar al resultado de una llamada substr?
Acabo de descubrir el error más desconcertante y no entiendo por qué el compilador no lo marcó para mí. Si escribo lo siguie ... clang++ (3.9.0), por lo que no parece ser un error, y tampoco parece ser sensible a la versión de C++ (juzgado 03, 11, 14).
¿Por qué el operador pre-incremento da rvalue en C?
En C++, el operador pre-incremento da lvalue porque se devuelve el objeto incrementado en sí, no una copia.
Pero en C, da rvalue. ¿Por qué?
¿Las cadenas literales y los valores de retorno de la función son lvalues o rvalues?
Solo me pregunto si una cadena literal es un lvalue o un rvalue. ¿Hay otros literales (como int, float, char, etc.) lvalue o rvalue?
¿Es el valor devuelto de una función un lvalue o rvalue?
¿Cómo se nota la diferencia?
C++0x const RValue referencia como parámetro de función
Estoy tratando de entender por qué alguien escribiría una función que toma una referencia const rvalue.
En el ejemplo de có ... ::vector<std::string> &&p) { std::cout << "3"; }
int main()
{
func(createVector());
return 0;
}
Es std::move(*this) un buen patrón?
Para que este código con los calificadores de referencia de C++11 funcione como se espera, tengo que introducir un std::move( ... no repetir código y tener las dos funciones con el mismo nombre...
EDITAR 3:... https://stackoverflow.com/a/124209/225186
¿Es un miembro de una estructura rvalue un rvalue o lvalue?
Una llamada a una función que devuelve una estructura es una expresión rvalue, pero ¿qué pasa con sus miembros?
Esta pieza de ... s que busqué en el estándar C++98/03, sin encontrar nada que diga acerca de si fun().v es lvalue o rvalue.
Entonces, ¿qué es?
La expresión debe ser un valor L modificable
Tengo aquí char text[60];
, Entonces lo hago en un if:
if(number == 2)
text = "awesome";
else
text = "you fail";
Y siempre decía que la expresión debe ser un valor L modificable.