Optimisation ou comportement défini par la norme
Salut à tous,
Considérons le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <iostream>
using namespace std;
struct A
{
A( const A& a ){ cout << "copy ctor" << endl; }
A( int a ){ cout << "ctor 1 param" << endl; }
};
int main ()
{
A a = A (1);//appel du constructeur à un paramètre puis appel au constructeur par copie???
return 0;
} |
À l'exécution, je devrais obtenir l'affichage suivant :
ctor 1 param
copy ctor
Or je n'obtiens que ctor 1 param.
Ma question est : est-ce une optimisation de mon compilateur ou un comportement défini dans la norme?