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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 .