Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
Main Page
Related Pages
Topics
Namespaces
Data Structures
Files
File List
Globals
EXTERNAL_HEADERS
RSL
etc
config
src
COLLAPSE_TEMPLATE_LOCALS.cpp
Go to the documentation of this file.
1
// checking static locals in template code
2
3
25
#if 0
// guard invalid preprocessor symbol below
26
27
// establish a dependency on collapse_template_locals.lib.*
28
# ifndef _RWSTD_NO_collapse_template_locals.lib
29
30
// link this compiled translation unit with the lib below
31
// LDOPTS = collapse_template_locals.lib$(LIBSUFFIX)
32
33
# endif
// _RWSTD_NO_collapse_template_locals.lib
34
#endif
// 0
35
36
37
// also defined in collapse_template_locals.lib.cpp
38
template
<
class
T>
39
T
foo
(
T
)
40
{
41
// multiple instances of `t' must be collapsed
42
static
T
t
;
43
return
t
++;
44
}
45
46
// bar() returns foo (0)
47
extern
int
bar
();
48
49
50
int
main
()
51
{
52
// compilers that corectly collapse static locals will
53
// behave as commented below (others will return 0 from bar())
54
55
int
i
=
foo
(0);
// returns 0
56
int
j
=
bar
();
// should return 1
57
58
return
!(
i
!=
j
);
59
}
i
#define i
Definition
17.names.cpp:126
T
#define T
Definition
17.names.cpp:163
t
#define t
Definition
17.names.cpp:136
j
#define j
Definition
17.names.cpp:127
bar
int bar()
Definition
collapse_static_locals.lib.cpp:36
main
int main()
Definition
COLLAPSE_TEMPLATE_LOCALS.cpp:50
foo
#define foo(buf, s,...)
Definition
VA_LIST_FUNC_MACRO.cpp:28
Generated by
1.9.8