dwww Home | Show directory contents | Find package

%module nested_scope

%inline %{
namespace ns {
        // "global" is a case-insensitive keyword in PHP.
        struct Global_ {
#ifdef __clang__
                struct Outer {
                        struct Nested;
                        struct Nested {
                          int data;
                        };
                };
                struct Outer::Nested instance;
#else
                struct Outer {
                        struct Nested;
                };
                struct Outer::Nested {
                        int data;
                } instance;
#endif
        };
}
                class Outer1 {
                        struct Nested1;
                public:
                        struct Nested2;
#ifdef __clang__
                        struct Nested2 {
                                int data;
                        };
#endif
                        template <class T> class AbstractClass;
                        class Real;
                };
#ifndef __clang__
                struct Outer1::Nested2 {
                        int data;
                };
#endif
                
                class Klass {
                public:
                        template <class T> class AbstractClass;
                        class Real;
                };

                template <class T> class Klass::AbstractClass {
                public:
                        virtual void Method() = 0;
                        virtual ~AbstractClass() {}
                };
%} 

%template(abstract_int) Klass::AbstractClass <int>;

%inline %{
                class Klass::Real : public AbstractClass <int> {
                public:
                        virtual void Method() {}
                };
%}

Generated by dwww version 1.15 on Tue Jul 2 00:47:50 CEST 2024.