Resultados de la búsqueda a petición "lvalue"
¿Son las cadenas literales y los valores de retorno de la función 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 de retorno d...
¿Por qué el resultado de este no es un valor?
Necesito un consejo con este extraño comportamiento. Vamos a tener este código:
¿Por qué no se promueve este valor a un valor como se especifica en la referencia?
losReferencia de óxido [https://doc.rust-lang.org/reference.html#lvalues-rvalues-and-temporaries]dice: El operando izquierdo de una asignación o expresión de asignación compuesta es un contexto de valor, al igual que el operando único de un ...
¿Qué tiene de malo esta asignación en un operador condicional?
Hay un error. ¿Es incorrecto asignar un valor a [i] en el siguiente código? ¿O algo está mal con los operadores condicionales? #include<stdio.h> #include<string.h> int main(){ char a[12]="sumit tyagi"; int i=0; while(a[i]!='\0'){ a[i]>90 ? ...
¿Por qué es ilegal tomar la dirección de un temporal?
Sé que el código escrito a continuación es ilegal. void doSomething(std::string *s){} int main() { doSomething(&std::string("Hello World")); return 0; }La razón es que no se nos permite tomar la dirección de un objeto temporal. Pero mi pregunta ...
C ++ 0x: valor de referencia de valor versus valor no constante
Al programar en C ++ 03, no podemos pasar un temporal sin nombreT() a una funciónvoid foo(T&);. La solución habitual es darle un nombre al temporal y luego pasarlo como: T v; foo(v);Ahora, viene C ++ 0x, y ahora con referencias rvalue, una ...
En C ++ 11, ¿cómo puedo obtener un valor temporal sin un nombre?
Tengo una C lib tradicional y una función (setsockopts) quiere un argumento por puntero. En C ++ 11 (gcc 4.8), ¿puedo pasar este argumento sin inicializar una variable con nombre? Tengo la siguiente solución no satisfactoria: #include ...
¿Es un puntero desreferenciado un valor válido?
Asumiendo la definición: int i = 10; int *p = &i;¿Por qué es * p un valor válido aquí? *p+=10;No debería * p evaluar el valor del int almacenado en & i, es decir. 10 y, por lo tanto, genera un error "No es un valor".
¿Por qué el operador de incremento previo da rvalue en C?
En C ++, el operador previo al incremento proporciona lvalue porque el objeto incrementado en sí mismo se devuelve, no una copia. Pero en C, da un valor. ¿Por qué?
¿Es std :: move (* this) un buen patrón?
Para que este código con calificadores de referencia de C ++ 11 funcione como se esperaba, tengo que introducir unstd::move(*this) eso no suena bien. #include<iostream> struct A{ void gun() const&{std::cout << "gun const&" << std::endl;} void ...