The Comma Operator's Deprecation Can't Come Soon Enough

Israel Rodriguez via Digitalmars-d digitalmars-d at puremagic.com
Tue Jul 15 09:52:34 PDT 2014


On Tuesday, 15 July 2014 at 08:01:40 UTC, Meta wrote:
> Spot the bug:
>
> template flattenedType(R, uint depth = uint.max)
> if (isInputRange!R)
> {
> 	static if (depth > 0)
> 	{
> 		static if (!isInputRange!(typeof(R.init.front)))
> 		{
> 			alias flattenedType = typeof(R.init.front, depth - 1);
> 		}
> 		else
> 		{
> 			alias flattenedType = flattenedType!(typeof(R.init.front), 
> depth - 1);
> 		}
> 	}
> 	else
> 	{
> 		alias flattenedType = typeof(R.init.front);
> 	}
> }
>
> I'll give you a hint: the bug causes flattenedType!R to always 
> returned uint.

Nuh uh...The comma operator is too valuable to loose...


More information about the Digitalmars-d mailing list