YesOrNo: useful idiom helper or wanking?

spir denis.spir at gmail.com
Mon Apr 11 12:22:38 PDT 2011


On 04/11/2011 08:16 PM, KennyTM~ wrote:
> If the goal of YesOrNo is simply for documentation, why not define it like this?
>
> import std.stdio;
>
> template YesOrNo(T) if(is(T == enum) && !T.no && T.yes) {
>      alias T YesOrNo;
> }
>
> enum Redraw : bool { no, yes }
>
> void drawCircle(YesOrNo!Redraw redraw) {
>      writeln(cast(bool) redraw);
> }
>
> void main() {
>      drawCircle(Redraw.yes);
>      drawCircle(Redraw.no);
>      // drawCircle(false);  (cannot implicitly convert expression (false) of
> type bool to Redraw)
> }

Very nice, indeed. Also the side-effect that forces the caller to write 
readable code ;-)

Denis
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d mailing list