Lines Matching refs:B
20 struct B struct
24 explicit B(int id) : id_(id) {count++;} in B() argument
25 B(const B& a) : id_(a.id_) {count++;} in B() function
26 ~B() {count--;} in ~B() argument
29 int B::count = 0;
32 : B
36 explicit C1(int id) : B(id-2), id_(id) {count++;} in C1()
37 C1(const C1& a) : B(a.id_-2), id_(a.id_) {count++;} in C1()
44 : B
48 explicit C2(int id) : B(id-2), id_(id) {count++;} in C2()
49 C2(const C2& a) : B(a.id_-2), id_(a.id_) {count++;} in C2()
72 assert(B::count == 0); in f1()
77 assert(B::count == 2); in f1()
82 assert(static_cast<B&>(static_cast<C1&>(a)).id_ == 2); in f1()
83 assert(static_cast<B&>(static_cast<C2&>(a)).id_ == 1); in f1()
95 assert(B::count == 0); in f2()
104 assert(static_cast<const B&>(static_cast<const C1&>(a)).id_ == 2); in f2()
105 assert(static_cast<const B&>(static_cast<const C2&>(a)).id_ == 1); in f2()
116 catch (const B&) in f2()
129 assert(B::count == 0); in f3()
133 catch (const B& a) // can not catch B (ambiguous base) in f3()
140 assert(static_cast<const B&>(c1).id_ == 2); in f3()
156 assert(B::count == 0); in f4()
160 catch (const B& a) // can not catch B (ambiguous base) in f4()
167 assert(static_cast<const B&>(c2).id_ == 1); in f4()
189 assert(B::count == 0); in main()