Re: why Visual Studio can not optimize the initialization code?
On Dec 19, 12:37 pm, George <Geo...@discussions.microsoft.com> wrote:
Hello everyone,
Why Visual Studio compiler can not optimize in this case? I think this case
is almost the same as sample 1, why compiler can optimize sample 1 but can
not optimze sample 2?
(sample 2,http://msdn2.microsoft.com/en-us/library/ms364057(vs.80).aspx)
What is not optimizing? Which portion in this sample were you
expecting to be optimized out but the compiler did not? (If you note
the sample correctly - there is an optimization!)
[Code]
#include <stdio.h>
class A {
public:
A() {printf ("A: I am in constructor\n");i = 1;}
~A() { printf ("A: I am in destructor\n"); i = 0;}
A(const A& a) {printf ("A: I am in copy constructor\n"); i = a.i;}
int i, x, w;};
class B {
public:
A a;
B() { printf ("B: I am in constructor\n");}
~B() { printf ("B: I am in destructor\n");}
B(const B& b) { printf ("B: I am in copy constructor\n");}};
A MyMethod()
{
B* b = new B();
A a = b->a;
delete b;
return (a);}
int main()
{
A a;
a = MyMethod();}
[/Code]