Retourner un objet non-copiable
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 :
Code:
1 2 3
|
void
function(a_class& object_to_be_returned); |
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).
Si vous avez une idée à base de rvalue references (ou toute autre nouveauté C++0x), je suis également preneur :).