https://issues.dlang.org/show_bug.cgi?id=19101
--- Comment #4 from johanenge...@weka.io --- > Not sure if a dot can be used in typenames for C++ mangling. Good point. `a.A` should not be mangled as `a::A` (using the C++ namespace divider), because that then would clash with C++ types. I think it is OK if the mangle can never be expressed in C++ when there are D types involved, because C++ cannot express the D types anyway. What I mean is, `foo!A` should be expressible in C++: ``` extern(C++) struct A {} extern(C++) int foo(T)(T t) {} ``` but doesn't have to in this code: ``` struct A {} extern(C++) int foo(T)(T t) {} ``` So C++ doesn't have to be able to express the mangled name, but it would definitely be nice if C++ demanglers can demangle it into something sensible. A dot is actually allowed in symbol names, so we can use it as part of the name? (i.e. pretend that the class name of A is "a.A".) --