Struct toString works but not std.conv.to!string
    anonymous via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Tue Oct 13 15:43:45 PDT 2015
    
    
  
On Tuesday, 13 October 2015 at 22:21:43 UTC, Ali Çehreli wrote:
> Reduced with a workaround:
>
> struct UTCOffset
> {
>     import std.conv : to;    // Move to module scope to compile
This introduces UTCOffset.to as an alias to std.conv.to.
>     string toString() const
>     {
>         return "hello";
>     }
> }
>
> void main() {
>     import std.conv : to;
This ends up being ignored, because UTCOffset has a member called 
`to`.
>     UTCOffset().to!string;
This does not do call std.conv.to through UFCS. Instead, it calls 
UTCOffset's static alias of std.conv.to without an argument.
That is: `UTCOffset().to!string;` = `UTCOffset.to!string;` = 
`std.conv.to!string;`
> }
    
    
More information about the Digitalmars-d-learn
mailing list