| %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(); } | |
| } | |
| %} |