Click here to Skip to main content
15,922,166 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: Multiple includes Pin
Cedric Moonen29-Aug-10 22:38
Cedric Moonen29-Aug-10 22:38 
AnswerRe: Multiple includes Pin
CPallini29-Aug-10 22:46
mveCPallini29-Aug-10 22:46 
GeneralRe: Multiple includes Pin
Shy Agam29-Aug-10 23:06
Shy Agam29-Aug-10 23:06 
GeneralRe: Multiple includes Pin
Cedric Moonen29-Aug-10 23:53
Cedric Moonen29-Aug-10 23:53 
GeneralRe: Multiple includes [modified] Pin
Shy Agam30-Aug-10 0:10
Shy Agam30-Aug-10 0:10 
GeneralRe: Multiple includes Pin
Cedric Moonen30-Aug-10 0:51
Cedric Moonen30-Aug-10 0:51 
GeneralRe: Multiple includes Pin
Richard MacCutchan30-Aug-10 2:39
mveRichard MacCutchan30-Aug-10 2:39 
GeneralRe: Multiple includes Pin
Paul Michalik30-Aug-10 9:42
Paul Michalik30-Aug-10 9:42 
GeneralRe: Multiple includes Pin
Richard MacCutchan30-Aug-10 21:50
mveRichard MacCutchan30-Aug-10 21:50 
GeneralRe: Multiple includes Pin
Paul Michalik30-Aug-10 23:30
Paul Michalik30-Aug-10 23:30 
GeneralRe: Multiple includes Pin
Richard MacCutchan31-Aug-10 0:41
mveRichard MacCutchan31-Aug-10 0:41 
GeneralRe: Multiple includes Pin
Shy Agam30-Aug-10 21:20
Shy Agam30-Aug-10 21:20 
GeneralRe: Multiple includes Pin
Emilio Garavaglia30-Aug-10 20:18
Emilio Garavaglia30-Aug-10 20:18 
AnswerRe: Multiple includes [modified] Pin
Shy Agam30-Aug-10 22:45
Shy Agam30-Aug-10 22:45 
GeneralRe: Multiple includes Pin
Paul Michalik30-Aug-10 23:49
Paul Michalik30-Aug-10 23:49 
GeneralRe: Multiple includes Pin
Shy Agam30-Aug-10 23:50
Shy Agam30-Aug-10 23:50 
GeneralRe: Multiple includes Pin
Aescleal31-Aug-10 0:30
Aescleal31-Aug-10 0:30 
GeneralRe: Multiple includes Pin
Tim Craig31-Aug-10 8:59
Tim Craig31-Aug-10 8:59 
GeneralRe: Multiple includes Pin
Aescleal31-Aug-10 9:13
Aescleal31-Aug-10 9:13 
GeneralRe: Multiple includes Pin
Paul Michalik31-Aug-10 12:35
Paul Michalik31-Aug-10 12:35 
GeneralRe: Multiple includes Pin
Tim Craig31-Aug-10 13:12
Tim Craig31-Aug-10 13:12 
GeneralRe: Multiple includes Pin
Paul Michalik31-Aug-10 21:29
Paul Michalik31-Aug-10 21:29 
GeneralRe: Multiple includes [modified] Pin
Paul Michalik31-Aug-10 6:28
Paul Michalik31-Aug-10 6:28 
GeneralRe: Multiple includes Pin
Shy Agam31-Aug-10 21:27
Shy Agam31-Aug-10 21:27 
GeneralRe: Multiple includes Pin
Paul Michalik31-Aug-10 23:57
Paul Michalik31-Aug-10 23:57 
Well, there are several "dangers" in that, but don't panic! It's a perfectly legal c++ construct - which can be used in safe manner if:

1. the functionality of your program does not depend on the time when the global objects are initialized/deinitialized
2. the globals do not depend on the state of each other in an undefined manner
3. you can assure that these global objects are initialized at all - speaking in terms of the holy standard "they are used in the program".

With regards to point 3: Under certain circumstances, linkers do not include these globals into the program, if they don't see an explicit usage of them. This behavior collides with many popular idioms such as pluggable factories, reflectors or serializers: Here, the framework relies on dynamic initialization (this is a process which runs before your program starts) of static class objects with non-trivial constructors which perform certain functionality on instantiation - e.g. register a factory method for a type in an another global collection of factory methods.

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.