rvalue

¿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

¿Todos los rvalues temporales están en C++?

He estado codificando en C++ durante los últimos años. Pero hay una pregunta que no he sido capaz de averiguar. Quiero pregun ... todos temporales en C++, rvalues? Si no, ¿puede alguien darme un ejemplo donde temporal producido en el código es un lvalue?

los rvalues no-clase siempre tienen tipos cv-unqualified

§3.10 la sección 9 dice "los rvalues no-clase siempre tienen tipos cv-no calificados". Eso me hizo preguntarme... int foo() ... n un valor constante:) EDITAR: Este problema parece haberse solucionado en g++ 4.5.0, ambas líneas imprimen "rvalue" ahora.

¿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; }

Dirección de un temporal en Go?

¿Cuál es la forma más limpia de manejar un caso como este: func a() string { /* doesn't matter */ } b *string = & ... dirección. Aquí está claro que se debe tomar la dirección del valor devuelto. ¿Cuál es una forma idiomática de manejar esto?

¿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?

Pasar rvalues a través de std:: bind

Quiero pasar un rvalue a través de std::bind a una función que toma una referencia rvalue en C++0x. Por ejemplo: #include ... { auto f = std::bind(foo<Movable>, Movable()); f(); // error, but want the same effect as foo(Movable()) }