On Tuesday, 17 May 2016 at 17:26:59 UTC, Steven Schveighoffer wrote:
On 5/17/16 1:18 PM, Vladimir Panteleev wrote:
On Tuesday, 17 May 2016 at 14:06:37 UTC, Jack Stouffer wrote:
http://jackstouffer.com/blog/d_auto_decoding_and_you.html

Thanks for writing this. Great article.

Some remarks:

   static assert(is(typeof(s.front()) == dchar));

I believe .front is a property (so some ranges can implement it as a
field, not a @property function). Hence, no parens.

Right, but s is a string. So front is a function.

Then what happened to writing generic code?

There is an inconsistency in the compiler for this. If s.front is a function is(typeof(s.front)) will not be what front *returns*, but the function type itself. Unless you tag with @property. However, it's perfectly legal for a front function not to be tagged @property.

There is a simple answer to this, and it is to either use ElementType or do what it does (is(typeof(R.init.front.init) T)).

Reply via email to