En choisissant de désactiver les extensions du langage (/Za) (1), on obtient bien une erreur de compilation :
1 2
| c:\...\.cpp(10) : error C2664: 'bidule' : impossible de convertir le paramètre 1 de 'machin' en 'machin &'
Une référence non const peut uniquement être liée à lvalue |
Et à mon avis, ils vont de toute manière devoir changer ça rapidement avec l'intraduction des rvalue reference, sinon, ça risque d'être un beau bordel.
Pour info, il signale même l'autre erreur qu'il y a dans ton code, l'avais-tu mise là volontairement ? :
c:\...\.cpp(9) : warning C4326: le type de retour de 'main' doit être 'int' au lieu de 'void'
Oupppssss.... absolument pas... je voulais mettre l'appel dans une fonction, mais pas dans main, à vrai dire
...
j'ai écrit et relu trop vite...: j'ai pensé void f(), puis int main(), et j'ai fait un "mix" très malheureux des deux
(1) : Par contre, les entêtes standard de windows refusent de compiler quand ce /Za est utilisé, ce qui en limite sérieusement l'usage.
Partager