elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No entiendo la semantica de movimientos (C++11)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No entiendo la semantica de movimientos (C++11)  (Leído 1,546 veces)
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
No entiendo la semantica de movimientos (C++11)
« en: 13 Enero 2014, 15:24 pm »

Hola a todos.

Estoy leyendo un pequeño documento acerca de las nuevas caracteristicas de C++11
link: http://www.eiic.ulpgc.es/documentoscongresos/Francisco%20Palomo-Inmaculada%20Medina.pdf

El caso es que, por lo que veo, la característica mas potente y compleja es la semántica de movimientos. Si lo he entendido bien, esto incide directamente en el rendimiento del código (haciéndolo mucho mas eficiente). (¿es mucho más, o poco más?)

El caso es que lo leo y releo y no consigo entenderlo.
Explico lo que "creo entender":
1 - Sé lo que es un r-value, entiendo que siempre se almacenan en la stack.
2 - Creo entender que la idea del move semantics es "mover" un r-value de la stack al heap.
¿¿¿ Esto se consigue asignando la direccion de memoria de nuestor r-value (que esta en el stack) a un puntero que está apuntado a una dirección del heap???

Cito la explicación que dan:
Estas referencias, distintas de las habituales, se construyen con &&, en lugar de &.
Las referencias && pueden ligarse a un temporal y permiten su modificación.
...
Por lo tanto, es posible incluir en las clases constructores y operadores de asignación que
reciban referencias a valores «r». En el caso de un contenedor que posea un puntero
a memoria dinámica, su función sería encargarse de «mover» la memoria reservada en
el temporal al objeto destino que está siendo construido o asignado.
(WTF?!?!?)

¿Puede alguien explicarme esto por favor? no lo consigo entender.

Muchas gracias.

PD. ¿cuál es el motivo por el cual el compilador no puede conseguir el move semantics por si solo?


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hacer graficos en movimientos
.NET (C#, VB.NET, ASP)
Meta 3 4,870 Último mensaje 22 Agosto 2011, 08:07 am
por Meta
Nace la Wikipedia semántica en español
Noticias
wolfbcn 0 2,007 Último mensaje 8 Mayo 2012, 13:46 pm
por wolfbcn
semantica de movimientos C++ y java
Programación C/C++
SARGE553413 0 1,895 Último mensaje 4 Noviembre 2013, 11:03 am
por SARGE553413
sintaxis y semantica
Dudas Generales
m@o_614 4 3,012 Último mensaje 5 Noviembre 2014, 11:53 am
por ivancea96
Duda acerca de semantica e itegridad
Bases de Datos
Beginner Web 0 1,484 Último mensaje 28 Octubre 2018, 17:30 pm
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines