1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef A_H 10 #define A_H 11 12 #include <cassert> 13 14 class A 15 { 16 int id_; 17 public: A(int id)18 explicit A(int id) : id_(id) {++count;} A(const A & a)19 A(const A& a) : id_(a.id_) {++count;} ~A()20 ~A() {assert(id_ >= 0); id_ = -1; --count;} 21 id()22 int id() const {return id_;} 23 24 static int count; 25 }; 26 27 int A::count = 0; 28 29 #endif // A_H 30