Resultados de la búsqueda a petición "rvalue-reference"

2 la respuesta

implementación de estudio visual de "mover semántica" y "referencia de valor"

Encontré un video de Youtube en c ++ 11 concurrencia (parte 3) y el siguiente código, que compila y genera el resultado correcto en el video. Sin embargo, recibí un error de compilación de este código usando Visual Studio 2012. El compilador se ...

3 la respuesta

Sobre cómo reconocer la referencia de Rvalue o Lvalue y la regla if-it-has-a-name

Estaba leyendo el libro de Thomas Beckerartículo [http://thbecker.net/articles/rvalue_references/section_05.html]en referencia de valor y su uso. Allí define lo que llamasi-tiene-un-nombre regla: Las cosas que se declaran como referencia de ...

2 la respuesta

¿Valor de retorno o referencia de valor?

En el nuevo libro de Scott Meyer, propone un uso de ejemplo para calificadores de referencia de valor que se parece a esto: class Widget { private: DataType values; public: DataType& data() & { return values; } DataType data() && { return ...

1 la respuesta

¿Por qué esta función devuelve una referencia de valor dado dados los argumentos de valor?

La siguiente definición de unmin función template <typename T, typename U> constexpr auto min(T&& t, U&& u) -> decltype(t < u ? t : u) { return t < u ? t : u; }tiene un problema: parece que es perfectamente legal escribir min(10, 20) = 0;Esto ...

2 la respuesta

¿`Const &&` se une a todos los valores (y valores x)?

El estándar C ++ define las siguientes funciones eliminadas; template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;Esto es para ayudar a garantizar que las funciones no se usen incorrectamente al ...

1 la respuesta

Extender la vida útil temporal a través de rvalue data-member funciona con el agregado, pero no con el constructor, ¿por qué?

He encontrado que el siguiente esquema para extender un trabajo temporal de por vida funciona, no sé si debería, pero lo hace. struct S { std::vector<int>&& vec; }; int main() { S s1{std::vector<int>(5)}; // construct with temporary std::cout << ...

3 la respuesta

¿Por qué necesitamos establecer la referencia rvalue en null en move constructor?

//code from https://skillsmatter.com/skillscasts/2188-move-semanticsperfect-forwarding-and-rvalue-references class Widget { public: Widget(Widget&& rhs) : pds(rhs.pds) // take source’s value { rhs.pds = nullptr; // why?? } private: struct ...

3 la respuesta

¿Por qué no puedo pasar una referencia rvalue como es a otra función en C ++ 11?

Tengo un código: void f(int&& i) { auto lambda = [](int&& j) { (void)j; } lambda(i); } int main() { f(5); }Clang ++ da un error:no known conversion from 'int' to 'int &&' for 1st argument Porqué eli cambia su tipo aint cuando se pasa a lalambda()?

4 la respuesta

¿Los compiladores de C ++ 11 convierten las variables locales en valores cuando pueden durante la optimización del código?

A veces es aconsejable dividir expresiones complicadas o largas en varios pasos, por ejemplo (la segunda versión no es más clara, pero es solo un ejemplo): return object1(object2(object3(x)));Se puede escribir como: object3 a(x); object2 b(a); ...

2 la respuesta

¿Por qué `std :: move` se llama` std :: move`?