Click here to Skip to main content
15,918,889 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Is this bad design (CComVariant) ? Pin
Todd Smith14-Aug-02 12:57
Todd Smith14-Aug-02 12:57 
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson14-Aug-02 13:13
Bill Wilson14-Aug-02 13:13 
GeneralRe: Is this bad design (CComVariant) ? Pin
Todd Smith14-Aug-02 13:17
Todd Smith14-Aug-02 13:17 
GeneralRe: Is this bad design (CComVariant) ? Pin
Michael Dunn14-Aug-02 15:02
sitebuilderMichael Dunn14-Aug-02 15:02 
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson15-Aug-02 6:06
Bill Wilson15-Aug-02 6:06 
GeneralRe: Is this bad design (CComVariant) ? Pin
Michael Dunn15-Aug-02 7:22
sitebuilderMichael Dunn15-Aug-02 7:22 
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson15-Aug-02 7:58
Bill Wilson15-Aug-02 7:58 
GeneralRe: Is this bad design (CComVariant) ? Pin
Philippe Mori15-Aug-02 10:13
Philippe Mori15-Aug-02 10:13 
These two lines are not equivalent. Second line is considered equivalent to:
CComVariant v(CComVariant("foo")); // Uses a temporary object


Thus it require that a copy constructor exists is accessible. The compiler was allowed to optimize away useless copy (I'm not sure if this is still allowed by the standard and under which condition --- I think that condition are now more strict).

Thus the first version will always call one constructor (which will in this case call assignment operator after initializing vt to VT_EMPTY to ensure that assignment won't try to destroy an unintialized VARIANT).

The second one may depend on the compiler, optimisations and possible minor changes in the standard. Thus it is preferable to uses the first one if it does mather.


Philippe Mori
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson16-Aug-02 7:32
Bill Wilson16-Aug-02 7:32 
GeneralRe: Is this bad design (CComVariant) ? Pin
Philippe Mori16-Aug-02 16:49
Philippe Mori16-Aug-02 16:49 
AnswerRe: Is this bad design (CComVariant) ? Pin
Michael Dunn14-Aug-02 15:04
sitebuilderMichael Dunn14-Aug-02 15:04 
GeneralRe: Is this bad design (CComVariant) ? Pin
Philippe Mori16-Aug-02 17:15
Philippe Mori16-Aug-02 17:15 
GeneralStack Question Pin
Nick Parker14-Aug-02 8:21
protectorNick Parker14-Aug-02 8:21 
GeneralRe: Stack Question Pin
Chris Losinger14-Aug-02 8:24
professionalChris Losinger14-Aug-02 8:24 
GeneralRe: Stack Question Pin
Nick Parker14-Aug-02 8:26
protectorNick Parker14-Aug-02 8:26 
GeneralRe: Stack Question Pin
Chris Losinger14-Aug-02 8:30
professionalChris Losinger14-Aug-02 8:30 
GeneralRe: Stack Question Pin
Nick Parker14-Aug-02 8:31
protectorNick Parker14-Aug-02 8:31 
GeneralRe: Stack Question Pin
Chris Losinger14-Aug-02 8:36
professionalChris Losinger14-Aug-02 8:36 
GeneralRe: Stack Question Pin
Nick Parker14-Aug-02 8:44
protectorNick Parker14-Aug-02 8:44 
GeneralRe: Stack Question Pin
Chris Losinger14-Aug-02 8:56
professionalChris Losinger14-Aug-02 8:56 
GeneralRe: Stack Question Pin
Nick Parker14-Aug-02 9:04
protectorNick Parker14-Aug-02 9:04 
GeneralRe: Stack Question Pin
Chris Losinger14-Aug-02 9:06
professionalChris Losinger14-Aug-02 9:06 
GeneralRe: Stack Question Pin
Nick Parker14-Aug-02 9:10
protectorNick Parker14-Aug-02 9:10 
GeneralRe: Stack Question Pin
Chris Losinger14-Aug-02 9:16
professionalChris Losinger14-Aug-02 9:16 
GeneralRe: Stack Question Pin
Nick Parker14-Aug-02 9:19
protectorNick Parker14-Aug-02 9:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.