overloaded extern(C) called without error
    deadalnix 
    deadalnix at gmail.com
       
    Wed Sep 11 01:25:59 PDT 2013
    
    
  
On Tuesday, 10 September 2013 at 14:38:56 UTC, Dicebot wrote:
> On Tuesday, 10 September 2013 at 14:07:18 UTC, Luís Marques 
> wrote:
>> I just realized I wasn't clear -- it calls the (wrong) 
>> overloaded function:
>>
>>    extern(C) void foo(int);
>>    extern(C) void foo() { writeln("yes, this is called"); }
>>
>>    void main()
>>    {
>>        foo(42);
>>    }
>>
>> outputs:
>>
>>    yes, this is called
>
> This is why mixing ABI and mangling in one entity is bad. And 
> why overloading extern(C) functions is compile-time error in 
> C++.
I think this is another form of the unclear qualifier binding 
problem.
Qualifier bind to symbol : mangling.
Qualifier bind to type : calling convention.
    
    
More information about the Digitalmars-d
mailing list