On Wed, 14 Mar 2007 18:42:59 -0700, Pedro LamarĂ£o
wrote:
> On 14 mar, 21:30, "Amadeus W.M." <[EMAIL PROTECTED]> wrote:
>> For theoretical purposes, how do I turn off NRVO behavior in g++? I
>> couldn't find anything relevant in the man page.
>
> Have you tried turning optimization off with -O0 ? That should do it.
>
It doesn't seem to. I compile the following code with g++ -g -Wall -O0.
#include <iostream>
#include <cstdlib>
using namespace std;
class A
{
public:
A(double a=0) : x(a) { cerr << "ctor: " << x << endl; };
A(const A & a) : x(a.x) { cerr << "cpy ctor: " << x << endl; }
double x;
};
A foobar(double x)
{
A a(x);
return a;
}
int main(int argc, char * argv[])
{
A b = foobar(20); // step inside foobar and see that &a = &b.
return 0;
}
_______________________________________________
help-gplusplus mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gplusplus