www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 962] New: extern C/Windows names D-mangled

reply d-bugmail puremagic.com writes:

           Summary: extern C/Windows names D-mangled
           Product: D
           Version: unspecified
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: chris dprogramming.com

I'm sure this has been brought up several times, but in this case I think it
should be fixed:

template MyFuncs()
   export extern(Windows) void foo() { }

mixin MyFuncs;
// I expect foo to be mixed in and exported with a normal extern(Windows)
signature, yet it is mangled like a D name just because it's in a template.
// This is preventing me from writing some useful boilerplate code.

Feb 14 2007
parent d-bugmail puremagic.com writes:

bugzilla digitalmars.com changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID

But changing the behavior of this would lead to name collisions if something is
mixed in more than once, which is why it behaves this way.

You can get the behavior you want with a string mixin, or with the (not yet)
macro feature of 2.0.

Aug 12 2007