delegates/lambas do not pick up calling convention
    Steven Schveighoffer via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Wed Aug  9 18:18:42 PDT 2017
    
    
  
On 8/9/17 7:52 PM, Johnson Jones wrote:
> given somethign like Threads.threadsAddIdle
> 
> which takes an extern(C) int (void*)
> 
> we can't seem to do
> 
> threadsAddIdle((void*) { }, null);
Because D tries to avoid situations where the type depends on the usage. 
The implied type is based solely on the expression (in most cases, there 
are a few cases where it is affected by usage).
FYI I also code in swift, and I run into situations all the time where 
the compiler can't figure out types for a statement because it hits some 
weird corner case that causes too much recursion in the compiler. In 
those cases, the compiler says "please split up your statement into 
multiple lines". So I'm kind of glad D doesn't go this route, as nice as 
it is conceptually.
-Steve
    
    
More information about the Digitalmars-d-learn
mailing list