TDPL: Operator Overloading

Yao G. yao.gomez at spam.gmail.com
Tue Aug 24 15:55:37 PDT 2010


On Tue, 24 Aug 2010 17:43:49 -0500, Andrej Mitrovic  
<andrej.mitrovich at whatever.com> wrote:

> I wasn't refering to the mixin, but the call to CheckedInt(). mixin  
> compiles "value" ~ op ~ "rhs.value", which in this case evaluates to 5 +  
> 5 and the whole call becomes CheckedInt(10).

Sorry. My mistake, I probably misread.

> What I don't understand is how you can construct a new CheckedInt struct  
> by calling it with CheckedInt(10), when I have to use a call like  
> CheckedInt!(int)(10) outside the struct (in main or in a unittest block).

This, I don't know. Maybe when you are inside the struct's body the  
compiler somehow
can infer the type when CheckedInt is instantiated. Or maybe it does some  
kind of
automatic alias (alias CheckedInt!10 CheckedInt).

Outside of the struct's body, as there aren't template default values, is  
not possible
to infer the type of CheckedInt. Maybe someone with more experience on  
templates can give
you a better (or correct, I'm just guessing this :) ) answer.

-- 
Yao G.


More information about the Digitalmars-d-learn mailing list