diff options
Diffstat (limited to 'test/std/depr/depr.auto.ptr/auto.ptr/AB.h')
-rw-r--r-- | test/std/depr/depr.auto.ptr/auto.ptr/AB.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/std/depr/depr.auto.ptr/auto.ptr/AB.h b/test/std/depr/depr.auto.ptr/auto.ptr/AB.h new file mode 100644 index 000000000000..b7ec9882a050 --- /dev/null +++ b/test/std/depr/depr.auto.ptr/auto.ptr/AB.h @@ -0,0 +1,41 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef AB_H +#define AB_H + +#include <cassert> + +class A +{ + int id_; +public: + explicit A(int id) : id_(id) {++count;} + A(const A& a) : id_(a.id_) {++count;} + virtual ~A() {assert(id_ >= 0); id_ = -1; --count;} + + static int count; +}; + +int A::count = 0; + +class B + : public A +{ +public: + explicit B(int id) : A(id) {++count;} + B(const B& a) : A(a) {++count;} + virtual ~B() {--count;} + + static int count; +}; + +int B::count = 0; + +#endif // AB_H |