extern(C++, "ns1") {
        extern(C++, ns2) {
                extern(C++, "ns3") {
                        extern(C++, ns4) {
                                void foo();
                        }
                }
        }
}

pragma(msg, foo.mangleof); // _ZN3ns23ns43ns13ns33fooEv

That produces 'ns2::ns4::ns1::ns3::foo' path instead of the intuitively expected 'ns1::ns2::ns3::ns4::foo'. The identifier namespaces are grouped before the string ones. Bug or feature?

Reply via email to