mirror of https://github.com/swig/swig
82 lines
1.5 KiB
OpenEdge ABL
82 lines
1.5 KiB
OpenEdge ABL
%module cpp17_nested_namespaces
|
|
// Tests c++17 style nested namespaces
|
|
|
|
%inline %{
|
|
// Tests with namespaces already defined using C++98 style (non-nested) namespaces
|
|
namespace A1 {
|
|
struct A1Struct {
|
|
void A1Method() {}
|
|
};
|
|
namespace B1 {
|
|
struct B1Struct {
|
|
void B1Method() {}
|
|
};
|
|
}
|
|
}
|
|
namespace A1::B1 {
|
|
A1Struct createA1Struct() { return ::A1::A1Struct(); }
|
|
B1Struct createB1Struct() { return ::A1::B1::B1Struct(); }
|
|
}
|
|
|
|
namespace A1 {
|
|
namespace B1 {
|
|
namespace C1 {
|
|
struct C1Struct {
|
|
void C1Method() {}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace A1::B1::C1 {
|
|
C1Struct createC1Struct() { return ::A1::B1::C1::C1Struct(); }
|
|
}
|
|
%}
|
|
|
|
%inline %{
|
|
// Tests with namespaces already defined using C++17 style (nested) namespaces
|
|
namespace A2::B2 {
|
|
struct B2Struct {
|
|
void B2Method() {}
|
|
};
|
|
}
|
|
|
|
namespace A2::B2 {
|
|
B2Struct createB2Struct() { return ::A2::B2::B2Struct(); }
|
|
}
|
|
|
|
namespace A2::B2::C2 {
|
|
struct C2Struct {
|
|
void C2Method() {}
|
|
};
|
|
}
|
|
|
|
namespace A2::B2::C2 {
|
|
C2Struct createC2Struct() { return ::A2::B2::C2::C2Struct(); }
|
|
}
|
|
%}
|
|
|
|
|
|
%inline %{
|
|
// Tests with namespaces already defined using C++17 style (nested) namespaces to 3 levels
|
|
namespace A3::B3::C3 {
|
|
struct C3Struct {
|
|
void C3Method() {}
|
|
};
|
|
}
|
|
|
|
namespace A3::B3::C3 {
|
|
C3Struct createC3Struct() { return ::A3::B3::C3::C3Struct(); }
|
|
}
|
|
|
|
namespace A3::B3 {
|
|
struct B3Struct {
|
|
void B3Method() {}
|
|
};
|
|
}
|
|
|
|
namespace A3::B3 {
|
|
B3Struct createB3Struct() { return ::A3::B3::B3Struct(); }
|
|
}
|
|
%}
|