Problem with ReturnType
    janderson 
    askme at me.com
       
    Fri Apr  4 00:16:09 PDT 2008
    
    
  
bearophile wrote:
> After an 1+ hours long bug hunt, I have reduced my code to the following one.
> ReturnType below is a reduced version of std.traits.ReturnType:
> 
> template ReturnType(T) {
>     static if (is(T R == return))
>         alias R ReturnType;
> }
> 
> void bar(T)(T f) { return f(); }
There is no return type.  alias Return is returning an int.
> 
> void main() {
>     alias ReturnType!( typeof( (int x){ return x; } ) ) TInt; //problem
>     bar((int n=1) { return 2; });
> }
> 
> The output:
> test.d(6): Error: expected 1 arguments, not 0
> test.d(10): template instance test.bar!(int delegate(int x)) error instantiating
> 
> Is this a bug of DMD/Phobos (I am using 1.028)?
> 
> Bye,
> bearophile
    
    
More information about the Digitalmars-d-learn
mailing list