2011-04-11 9 views
6

¿Puede alguien explicar esta afirmación de la norma ISO N3242 § 3.2, segundo punto¿Alguien puede explicar este párrafo del borrador estándar actual de C++ 0x?

Una asignación no la colocación o la función cancelación de asignación para una clase es ODR-utilizado por la definición de un constructor de esa clase. Una función de desasignación no colocación para una clase es ODR-usedby la definición del destructor de esa clase , o por ser seleccionado por la búsqueda en el punto de definitionof un destructor virtual (12,4) 0,26 A la función de copia-asignación para una clase es utilizada por una función de copia-asignación implícitamente definida para otra clase como se especifica en 12.8. Una función de asignación de movimiento para una clase se utiliza mediante una función de asignación de movimiento implícitamente definida para otra clase como se especifica en 12.8.

ISO Standard 2003 dice:

una función de copia-asignación para una clase es utilizado por una función de copia-asignación definida implícitamente- para otra clase como se especifica en 12.8.

¿Cuál es la diferencia real en estas afirmaciones?

Cualquiera explica el punto agregado anterior en términos de ejemplo/programa ...?

Sé move constructor/move assigment function -> nueva función añadida.

¿Alguien puede explicar esto con la ayuda de un ejemplo/programa?

favor .............

favor .......... responder

Respuesta

4

La justificación de esta adición, con ejemplos pueden ser encontrados here . En resumen, es una aclaración de cuándo se debe definir una función de asignación/desasignación para una clase.

La regla de una definición (C++ 03) requiere que cada variable o función que es usó en el programa, para una definición muy específica de "uso", debe tener exactamente una definición. Por lo tanto, una descripción de cuándo una función (de) asignación se considera "utilizada", también exige cuando se requiere una definición.

Para evitar confusiones entre el significado general de la palabra "use" y el significado de "use" como se define en ODR, la palabra "use" se reemplazó por "odr-use" cuando el segundo significado .

Cuestiones relacionadas