Line data Source code
1 : #include <iostream>
2 :
3 : #include <ers/ers.hpp>
4 :
5 0 : ERS_DECLARE_ISSUE(test, Base, "Exception test", ERS_EMPTY)
6 :
7 0 : ERS_DECLARE_ISSUE_BASE(test, // namespace name
8 : daughter, // issue name
9 : test::Base, // base issue name
10 : "I'm inheriting ", // message
11 : ERS_EMPTY, // base class attributes
12 : ERS_EMPTY // this class attributes
13 : )
14 :
15 0 : ERS_DECLARE_ISSUE_BASE(other, // namespace name
16 : A, // issue name
17 : test::daughter, // base issue name
18 : "I'm inheriting from daughter", // message
19 : ERS_EMPTY, // base class attributes
20 : ERS_EMPTY // this class attributes
21 : )
22 :
23 0 : ERS_DECLARE_ISSUE_BASE(weird, // namespace name
24 : B, // issue name
25 : other::A, // base issue name
26 : "I'm inheriting from A", // message
27 : ERS_EMPTY, // base class attributes
28 : ERS_EMPTY // this class attributes
29 : )
30 :
31 : int
32 0 : main(int ac, char** av)
33 : {
34 :
35 0 : std::vector<std::unique_ptr<ers::Issue>> issues;
36 0 : issues.push_back(std::make_unique<test::Base>(ERS_HERE));
37 0 : issues.push_back(std::make_unique<test::daughter>(ERS_HERE));
38 0 : issues.push_back(std::make_unique<other::A>(ERS_HERE));
39 0 : issues.push_back(std::make_unique<weird::B>(ERS_HERE));
40 :
41 0 : for (const auto& i : issues) {
42 0 : auto chain = i->get_class_inheritance();
43 0 : for (const auto& c : chain) {
44 0 : std::cout << c << "\t";
45 : }
46 0 : std::cout << std::endl;
47 0 : }
48 :
49 0 : return 0;
50 0 : }
|