Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
COLLAPSE_TEMPLATE_STATICS.cpp
Go to the documentation of this file.
1// checking static template members
2
3
25#if 0 // guard invalid preprocessor symbol below
26
27 // establish a dependency on collapse_template_statics.lib.*
28# ifndef _RWSTD_NO_collapse_template_statics.lib
29
30 // link this compiled translation unit with the lib below
31 // LDOPTS = collapse_template_statics.lib$(LIBSUFFIX)
32
33# endif // _RWSTD_NO_collapse_template_statics.lib
34#endif // 0
35
36
37// also defined in collapse_template_statics.lib.cpp
38template <class T>
39struct S
40{
41 // multiple instances of `t' must be collapsed
42 static T t;
43};
44
45template <class T>
47
48
49// bar() returns S<int>::t++
50extern int bar ();
51
52
53int main ()
54{
55 // compilers that corectly collapse static template members
56 // behave as commented below (others will return 0 from bar())
57
58 int i = S<int>::t++; // yields 0
59 int j = bar (); // should return 1
60
61 return !(i != j);
62}
#define i
Definition 17.names.cpp:126
#define T
Definition 17.names.cpp:163
#define j
Definition 17.names.cpp:127