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.