This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
copy ctor not called
- From: Jeroen Wijnhout <Jeroen dot Wijnhout at kdemail dot net>
- To: gcc-help at gcc dot gnu dot org
- Date: Sat, 02 Jul 2005 20:24:10 +0200
- Subject: copy ctor not called
Hi,
Consider a class with a copy constructor:
class A
{
public:
A(int i) : m_i(i)
{
cout << "A(int i)" << endl;
}
A(const A &a)
{
cout << "A(const A &a)" << endl;
m_i = a.i();
}
int i() { return m_i; }
private:
int m_i;
};
now if I do something like:
A a = 2;
the output should be:
A(int i)
A(const A &a)
the actual output is:
A(int i)
Now, I understand that gcc optimizes away the copy constructor and interprets
the code as:
A a(2);
However, is there a way to force gcc to use the copy constructor?
best,
Jeroen
P.S.: I'm not on the list.
--
Kile -- KDE Integrated LaTeX Environment
http://kile.sourceforge.net