2011-04-11 1 views
6

Quelqu'un peut-il expliquer cette déclaration de l'ISO N3242 §3.2, 2ème pointQuelqu'un peut-il expliquer ce paragraphe du projet de norme C++ 0x standard?

Une allocation non placement ou fonction de désaffectation pour une classe est ODR utilisé par la définition d'un constructeur de cette classe. A fonction de désallocation non-placement pour une classe est odr-Usedby la définition du destructeur de cette classe , ou en étant retenu par la recherche au niveau du point de definitionof un destructeur virtuel (12,4) 0,26 A la fonction d'attribution de copie pour une classe est utilisée par une fonction d'attribution de copie implicitement définie pour une autre classe comme spécifié en 12.8. Une fonction d'affectation de mouvement pour une classe est odr-utilisée par une fonction d'affectation de mouvement implicitement définie pour une autre classe comme spécifié en 12.8.

norme ISO 2003 dit:

Une fonction affectation de copie pour une classe est utilisée par une fonction copie affectation implicitement défini pour une autre classe comme indiqué dans 12,8.

Quelle est la différence réelle dans ces déclarations?

Quelqu'un explique le point ajouté ci-dessus en termes d'exemple/programme ...?

Je connais la fonction Déplacer constructeur/déplacement -> nouvelle fonction ajoutée. Est-ce que quelqu'un peut expliquer cela à l'aide d'un exemple/programme?

s'il vous plaît .............

s'il vous plaît .......... répondre

Répondre

4

La justification de cet ajout, avec des exemples peuvent être trouvés here . En bref, c'est une clarification de exactement quand une fonction d'allocation/désallocation pour une classe doit être définie. La règle de définition (C++ 03) exige que toute variable ou fonction utilisée dans le programme, pour une définition très spécifique de "use", doive avoir exactement une définition. Par conséquent, une description du moment où une fonction (de) affectation est considérée comme "utilisée" exige également qu'une définition soit requise. Pour éviter toute confusion entre la signification générale du mot "use", et la signification de "use" tel que défini dans ODR, le mot "use" a été remplacé par "odr-use" chaque fois que le second sens est voulu .

Questions connexes