Bonjour à tous,
La situation est très simple : j'ai un objet que je souhaite non-copiable, comment faire pour faire retourner un tel objet par une fonction ?
Évidemment, je souhaite que cet objet soit alloué sur la pile, sinon ce serait trop simple
Dans la pratique, pour peu que le compilateur utilise la NRVO, il ne se produit aucune opération de copie. Comment expliciter ce mécanisme ?
Je pensais à un truc comme ça :
mais c'est un peu moche et pas très expressif. En tout cas j'ai jamais rien vu de tel dans Boost (par exemple).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void function(a_class& object_to_be_returned);
Si vous avez une idée à base de rvalue references (ou toute autre nouveauté C++0x), je suis également preneur.
Partager