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
¿Por qué es ++i considerado un valor l, pero i++ no lo es?
¿Por qué es ++i es l-valor y i++ no?
¿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())
}