Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
EMPTY_MEM_INITIALIZER.cpp
Go to the documentation of this file.
1// checking for empty mem-initializer arglist
2
3
25template <class T, class U>
26struct S
27{
30
31 // exercise 12.6.2, p3, bullet 1
32 S (): t (/* expression-list optional */), u () { }
33};
34
35int foo (char c)
36{
37 // dirty up the stack
38 char dummy [32];
39 for (int i = 0; i != sizeof dummy; ++i)
40 dummy [i] = c + i;
41
42 return dummy [0] + dummy [sizeof dummy - 1];
43}
44
45struct X
46{
47 char c;
48 int i;
49};
50
51int bar ()
52{
54 const char *p = (const char*)&s;
55
56 // member must be default-initialized (zeroed out)
57 for (int i = 0; i != sizeof s; ++i)
58 if (*p)
59 return 0;
60 return 1;
61}
62
63int main ()
64{
65 foo ('a');
66
67 return !bar ();
68}
#define i
Definition 17.names.cpp:126
#define T
Definition 17.names.cpp:163
#define t
Definition 17.names.cpp:136
#define u
Definition 17.names.cpp:137
#define c
Definition 17.names.cpp:111
#define s
#define p
Definition 17.names.cpp:132
#define U
Definition 17.names.cpp:164
#define foo(buf, s,...)