xref: /aosp_15_r20/development/vndk/tools/header-checker/tests/input/example2.h (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker #ifndef EXAMPLE2_H_
2*90c8c64dSAndroid Build Coastguard Worker #define EXAMPLE2_H_
3*90c8c64dSAndroid Build Coastguard Worker #include <memory>
4*90c8c64dSAndroid Build Coastguard Worker #include <vector>
5*90c8c64dSAndroid Build Coastguard Worker #include <string>
6*90c8c64dSAndroid Build Coastguard Worker #include <tuple>
7*90c8c64dSAndroid Build Coastguard Worker #include "example3.h"
8*90c8c64dSAndroid Build Coastguard Worker 
9*90c8c64dSAndroid Build Coastguard Worker template <typename T, int size>
10*90c8c64dSAndroid Build Coastguard Worker class fooray {
11*90c8c64dSAndroid Build Coastguard Worker   T foor[size];
12*90c8c64dSAndroid Build Coastguard Worker };
13*90c8c64dSAndroid Build Coastguard Worker 
14*90c8c64dSAndroid Build Coastguard Worker template <class _T1, class _T2>
15*90c8c64dSAndroid Build Coastguard Worker struct __find_exactly_one_check {
16*90c8c64dSAndroid Build Coastguard Worker     static constexpr bool __matches[] = {std::is_same<_T1, _T2>::value};
17*90c8c64dSAndroid Build Coastguard Worker };
18*90c8c64dSAndroid Build Coastguard Worker 
19*90c8c64dSAndroid Build Coastguard Worker namespace test2 {
20*90c8c64dSAndroid Build Coastguard Worker struct HelloAgain {
21*90c8c64dSAndroid Build Coastguard Worker   std::vector<HelloAgain *> foo_again;
22*90c8c64dSAndroid Build Coastguard Worker   int bar_again;
23*90c8c64dSAndroid Build Coastguard Worker   static int hello_forever;
24*90c8c64dSAndroid Build Coastguard Worker   virtual int again();
~HelloAgainHelloAgain25*90c8c64dSAndroid Build Coastguard Worker   virtual ~HelloAgain() {}
26*90c8c64dSAndroid Build Coastguard Worker };
27*90c8c64dSAndroid Build Coastguard Worker struct NowWeCrash;
28*90c8c64dSAndroid Build Coastguard Worker }  // namespace test2
29*90c8c64dSAndroid Build Coastguard Worker 
30*90c8c64dSAndroid Build Coastguard Worker enum Foo_s {
31*90c8c64dSAndroid Build Coastguard Worker   foosball = 10,
32*90c8c64dSAndroid Build Coastguard Worker   foosbat
33*90c8c64dSAndroid Build Coastguard Worker };
34*90c8c64dSAndroid Build Coastguard Worker 
35*90c8c64dSAndroid Build Coastguard Worker static constexpr bool __test_var[] = {true, false};
36*90c8c64dSAndroid Build Coastguard Worker 
37*90c8c64dSAndroid Build Coastguard Worker namespace test3 {
38*90c8c64dSAndroid Build Coastguard Worker template <typename T>
39*90c8c64dSAndroid Build Coastguard Worker struct ByeAgain {
40*90c8c64dSAndroid Build Coastguard Worker   T foo_again;
41*90c8c64dSAndroid Build Coastguard Worker   int bar_again;
42*90c8c64dSAndroid Build Coastguard Worker   T method_foo(T);
43*90c8c64dSAndroid Build Coastguard Worker };
44*90c8c64dSAndroid Build Coastguard Worker 
45*90c8c64dSAndroid Build Coastguard Worker template<>
46*90c8c64dSAndroid Build Coastguard Worker struct ByeAgain<float> {
47*90c8c64dSAndroid Build Coastguard Worker   float foo_again;
48*90c8c64dSAndroid Build Coastguard Worker   static int foo_forever;
49*90c8c64dSAndroid Build Coastguard Worker   float bar_Again;
50*90c8c64dSAndroid Build Coastguard Worker   float method_foo(int);
51*90c8c64dSAndroid Build Coastguard Worker };
52*90c8c64dSAndroid Build Coastguard Worker 
53*90c8c64dSAndroid Build Coastguard Worker ByeAgain<double> double_bye;
54*90c8c64dSAndroid Build Coastguard Worker 
55*90c8c64dSAndroid Build Coastguard Worker template <typename T1, typename T2>
56*90c8c64dSAndroid Build Coastguard Worker bool Begin( T1 arg1, T2 arg2, int c);
57*90c8c64dSAndroid Build Coastguard Worker 
58*90c8c64dSAndroid Build Coastguard Worker bool End ( float arg = 2.0) {
59*90c8c64dSAndroid Build Coastguard Worker   bool ret = Begin(arg, 2, 2);
60*90c8c64dSAndroid Build Coastguard Worker   return true;
61*90c8c64dSAndroid Build Coastguard Worker }
62*90c8c64dSAndroid Build Coastguard Worker 
63*90c8c64dSAndroid Build Coastguard Worker 
64*90c8c64dSAndroid Build Coastguard Worker enum Kind {
65*90c8c64dSAndroid Build Coastguard Worker   kind1 = 24,
66*90c8c64dSAndroid Build Coastguard Worker   kind2 = 2312
67*90c8c64dSAndroid Build Coastguard Worker };
68*90c8c64dSAndroid Build Coastguard Worker 
69*90c8c64dSAndroid Build Coastguard Worker class Outer {
70*90c8c64dSAndroid Build Coastguard Worker  public:
71*90c8c64dSAndroid Build Coastguard Worker   int a;
72*90c8c64dSAndroid Build Coastguard Worker  private:
73*90c8c64dSAndroid Build Coastguard Worker   class Inner {
74*90c8c64dSAndroid Build Coastguard Worker     int b;
75*90c8c64dSAndroid Build Coastguard Worker   };
76*90c8c64dSAndroid Build Coastguard Worker };
77*90c8c64dSAndroid Build Coastguard Worker 
78*90c8c64dSAndroid Build Coastguard Worker std::vector<int *> Dummy(int t);
79*90c8c64dSAndroid Build Coastguard Worker 
80*90c8c64dSAndroid Build Coastguard Worker }  // namespace test3
81*90c8c64dSAndroid Build Coastguard Worker 
82*90c8c64dSAndroid Build Coastguard Worker #endif  // EXAMPLE2_H_
83