I have the following code:
#include <iostream>
using namespace std;
class X
{
public:
    int g;
    X() { cout << "constr" << endl; }
    X(const X& ref1) { cout << "copy constr" << endl; }
};
X f()
{
    X ee;
    ee.g = 1;
    return ee;
}
int main()
{
    X ff = f();
    return 0;
}
Running the code I see that the constructor was called only once and the copy constructor was never called. Don't you expect two constructor and one copy constructor calls here? Thanks!
 
     
     
    