Unreachable warning is annoying
Yuxuan Shui
yshuiv7 at gmail.com
Tue Mar 13 16:50:02 UTC 2018
On Tuesday, 13 March 2018 at 14:40:21 UTC, Steven Schveighoffer
wrote:
> On 3/13/18 10:25 AM, Yuxuan Shui wrote:
>> [...]
>
> This has been discussed before. There are a few ways around
> this. One is to do what you did. Another is to append a
> sentinel, or use id to terminate the loop:
>
> foreach(id, R; S) {
> static if(is(T == R))
> return id;
> else static if(id + 1 == S.length)
> return -1;
> }
Wait, I don't understand how this works.
Isn't this going to be expanded to something like:
return 0;
return 4;
// One return for every match
...
return -1;
Shouldn't this trigger unreachable warning too?
>
> IMO, the "unreachable statement" error is bogus because it's
> reachable depending on the template parameters! In the coder's
> eyes, what matters is whether the line of source is reachable
> or not, not whether it's reachable in that instantiation.
Agreed.
>
> -Steve
More information about the Digitalmars-d
mailing list