blob: cbc730417fa81c15a4aca1d140a3d50584d70458 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#define assert(E) \
if (!(E)) \
return 1;
template <class T>
class zero_init
{
public:
zero_init()
: val(static_cast<T>(0))
{
}
zero_init(T val)
: val(val)
{
}
operator T&() { return val; }
operator T() const { return val; }
private:
T val;
};
int someFunc()
{
zero_init<int*> p;
assert(p == 0);
p = new int(7);
assert(*p == 7);
delete p;
zero_init<int> i;
assert(i == 0);
i = 7;
assert(i == 7);
switch (i) {
}
int* vp = new int[i];
return 0;
}
|