dpkg (1.18.25) stretch; urgency=medium
[dpkg] / scripts / t / Dpkg_Shlibs / patterns.cpp
CommitLineData
1479465f
GJ
1#define EXPORT(x) x {}
2
3namespace NSA
4{
5 class ClassA
6 {
7 private:
8 class Private
9 {
10 public:
11 Private();
12 virtual ~Private();
13 void privmethod1(int);
14 void privmethod2(int);
15 };
16 Private *p;
17 class Internal
18 {
19 public:
20 Internal();
21 virtual ~Internal();
22 void internal_method1(char);
23 void internal_method2(char);
24 };
25 Internal *i;
26 public:
27 ClassA();
28 virtual ~ClassA();
29 virtual void generate_vt(const char *) const;
30 };
31
32 EXPORT(ClassA::Private::Private());
33 EXPORT(ClassA::Private::~Private());
34 EXPORT(void ClassA::Private::privmethod1(int));
35 EXPORT(void ClassA::Private::privmethod2(int));
36
37 EXPORT(ClassA::Internal::Internal());
38 EXPORT(ClassA::Internal::~Internal());
39 EXPORT(void ClassA::Internal::internal_method1(char));
40 EXPORT(void ClassA::Internal::internal_method2(char));
41
42 EXPORT(ClassA::ClassA());
43 EXPORT(ClassA::~ClassA());
44 EXPORT(void ClassA::generate_vt(const char *) const);
45};
46
47class ClassB
48{
49 public:
50 ClassB();
51 virtual ~ClassB();
52 virtual void generate_vt(const char *) const;
53};
54
55EXPORT(ClassB::ClassB());
56EXPORT(ClassB::~ClassB());
57EXPORT(void ClassB::generate_vt(const char *) const);
58
59class ClassC
60{
61 public:
62 ClassC();
63 virtual ~ClassC();
64 virtual void generate_vt(const char *) const;
65};
66
67EXPORT(ClassC::ClassC());
68EXPORT(ClassC::~ClassC());
69EXPORT(void ClassC::generate_vt(const char *) const);
70
71namespace NSB
72{
73 class ClassD : public NSA::ClassA, public ClassB, public ClassC
74 {
75 public:
76 ClassD();
77 virtual ~ClassD();
78 virtual void generate_vt(const char *) const;
79 };
80
81 EXPORT(ClassD::ClassD());
82 EXPORT(ClassD::~ClassD());
83 EXPORT(void ClassD::generate_vt(const char *) const);
84
85 class Symver {
86 public:
87 Symver();
88 ~Symver();
89
90 void symver_method1();
91 void symver_method2();
92 };
93
94 EXPORT(Symver::Symver());
95 EXPORT(Symver::~Symver());
96 EXPORT(void Symver::symver_method1());
97 EXPORT(void Symver::symver_method2());
98
99 class SymverOptional {
100 public:
101 SymverOptional();
102 ~SymverOptional();
103 };
104
105 EXPORT(SymverOptional::SymverOptional());
106 EXPORT(SymverOptional::~SymverOptional());
107};