Check if tuple contains value at compile time

Diggory diggsey at googlemail.com
Sat May 4 19:15:28 PDT 2013


On Sunday, 5 May 2013 at 01:44:19 UTC, bearophile wrote:
> Diggory:
>
>> The documentation seems too say that "[mytuple]" will make an 
>> array,
>
> Nope. You have to extract the inherent typetuple first. And 
> this is what the [] syntax does (tested):
>
>
> import std.stdio, std.typecons, std.algorithm;
> void main() {
>     auto t = tuple("foo", "bar", "spam");
>     assert([t[]].canFind("bar"));
> }
>
> Bye,
> bearophile

Is the behaviour of the empty [] when applied to tuples 
documented anywhere?

The problem is that this doesn't work if the tuple is empty:
Error: template std.algorithm.canFind does not match any function 
template declaration.

And unfortunately in the situation I need it for an empty tuple 
is one of the most likely scenarios.


More information about the Digitalmars-d-learn mailing list