getChar() vs. getChar!true()

2013-03-20 Thread Peter Sommerfeld

In std.json is a function getchar() with this signature:

dchar getChar(bool SkipWhitespace = false);

But it is called differently:

getChar(); // obviously SkipWhitespace = true;

getChar!true(); // probably getchar(true)

What is the reason for the different notation ?

Peter


Re: getChar() vs. getChar!true()

2013-03-20 Thread cal
On Wednesday, 20 March 2013 at 20:11:47 UTC, Peter Sommerfeld 
wrote:

In std.json is a function getchar() with this signature:

dchar getChar(bool SkipWhitespace = false);


It looks like the signature (line 115) is:
dchar getChar(bool SkipWhitespace = false)()

Note the extra set of parens at the end, making the bool a 
template parameter.


Re: getChar() vs. getChar!true()

2013-03-20 Thread Ali Çehreli

On 03/20/2013 01:11 PM, Peter Sommerfeld wrote:
> In std.json is a function getchar() with this signature:
>
> dchar getChar(bool SkipWhitespace = false);

That 'false' up there is the default value of SkipWhitespace.

> But it is called differently:
>
> getChar(); // obviously SkipWhitespace = true;

No, in that case SkipWhitespace==true.

> getChar!true(); // probably getchar(true)
>
> What is the reason for the different notation ?

The same thing; just being explicit.

Aside: bool parameters (regular or template) hurt readability. It would 
be better to have defined a type similar to std.stdio.KeepTerminator and 
its use with byLine():


  http://dlang.org/phobos/std_stdio.html#.File.byLine

Ali



Re: getChar() vs. getChar!true()

2013-03-20 Thread Ali Çehreli

On 03/20/2013 01:27 PM, Ali Çehreli wrote:

>  > getChar(); // obviously SkipWhitespace = true;
>
> No, in that case SkipWhitespace==true.

I said "No" but kept your value. :) I meant "No, in that case 
SkipWhiteSpace==false."


Ali



Re: getChar() vs. getChar!true()

2013-03-20 Thread Peter Sommerfeld

cal wrote:


On Wednesday, 20 March 2013 at 20:11:47 UTC, Peter Sommerfeld wrote:

In std.json is a function getchar() with this signature:

dchar getChar(bool SkipWhitespace = false);


It looks like the signature (line 115) is:
dchar getChar(bool SkipWhitespace = false)()

Note the extra set of parens at the end, making the bool a template  
parameter.


Thanks, I must look more carefully...

Peter


Re: getChar() vs. getChar!true()

2013-03-20 Thread Peter Sommerfeld

Ali Çehreli:
Aside: bool parameters (regular or template) hurt readability. It would  
be better to have defined a type similar to std.stdio.KeepTerminator and  
its use with byLine():


   http://dlang.org/phobos/std_stdio.html#.File.byLine


I see. On the other hand: For an internal function like getChar()()
the implementation seem so be a bit to intricate. But for a public
API certainly preferable.

Peter