|
From: | Ethan Eade |
Subject: | Re: [libcvd-members] gvars3 Makefile.in configure configure.ac gvars... |
Date: | Wed, 20 Feb 2008 22:56:25 +0000 |
User-agent: | Thunderbird 2.0.0.9 (X11/20070801) |
>> You can always use the template trick, which requires the linker to >> ensure that only one instance is created: >> // code in a header: >> template <int DUMMY=0> struct HoldsGlobal { >> double global; Should read "static double global;" >> }; >> >> template <int DUMMY> double HoldsGlobal::global = 3.14; >> //end code >> >> Then you use HoldsGlobal<>::global. The linker is required to treat it >> as a weak symbol -- i.e., there will be exactly one instance common to >> all translation units when linked. > The other problem is the order of calling global constructors. The > standard is rather unhelpful about this. Yes, trickier.
[Prev in Thread] | Current Thread | [Next in Thread] |