PageRenderTime 13ms CodeModel.GetById 9ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/access_change.i

#
Swig | 51 lines | 43 code | 8 blank | 0 comment | 0 complexity | c6f863c62bfa1dd5d5fc1c77eacb7865 MD5 | raw file
 1%module access_change
 2
 3// test access changing from protected to public
 4
 5%inline %{
 6
 7template<typename T> class Base {
 8public:
 9  virtual ~Base() {}
10  virtual int *PublicProtectedPublic1() { return 0; }
11  int *PublicProtectedPublic2() { return 0; }
12  virtual int *PublicProtectedPublic3() { return 0; }
13  int *PublicProtectedPublic4() { return 0; }
14protected:
15  virtual int * WasProtected1() { return 0; }
16  int * WasProtected2() { return 0; }
17  virtual int * WasProtected3() { return 0; }
18  int * WasProtected4() { return 0; }
19};
20
21template<typename T> class Derived : public Base<T> {
22public:
23  int * WasProtected1() { return 0; }
24  int * WasProtected2() { return 0; }
25  using Base<T>::WasProtected3;
26  using Base<T>::WasProtected4;
27protected:
28  virtual int *PublicProtectedPublic1() { return 0; }
29  int *PublicProtectedPublic2() { return 0; }
30  using Base<T>::PublicProtectedPublic3;
31  using Base<T>::PublicProtectedPublic4;
32};
33
34template<typename T> class Bottom : public Derived<T> {
35public:
36  int * WasProtected1() { return 0; }
37  int * WasProtected2() { return 0; }
38  using Base<T>::WasProtected3;
39  using Base<T>::WasProtected4;
40  int *PublicProtectedPublic1() { return 0; }
41  int *PublicProtectedPublic2() { return 0; }
42  int *PublicProtectedPublic3() { return 0; }
43  int *PublicProtectedPublic4() { return 0; }
44};
45%}
46
47%template(BaseInt) Base<int>;
48%template(DerivedInt) Derived<int>;
49%template(BottomInt) Bottom<int>;
50
51