I was going through Item 17 of Effective C++ 3rd Edition.
In that it is mentioned that order in which arguments are executed for a function call:
processWidget(std::tr1::shared_ptr<Widget> pw(new Widget), priority());
can be:
1) Execute "new Widget" 2) calling priority 3) Call tr1::shared_ptr c'tor.
Is this really the case in latest C++ compilers. I mean, i strongly feel that compiler should call step 1 and 3 one after the other not like above case since its one single argument. Please correct me if my understanding is wrong. Also, if someone asked this question, you can redirect it to that page since i didn't find any in SO.