On 01/25/2010 10:28 AM, Simen kjaeraas wrote:
On Mon, 25 Jan 2010 09:59:42 +0100, Pelle Månsson
<pelle.mans...@gmail.com> wrote:

On 01/23/2010 12:29 AM, strtr wrote:
Simen kjaeraas Wrote:


Not tested, but they should work:

if ( anySame( var, a, b, c, d ) ) {
}

if ( allSame( var, a, b, c, d ) ) {
}


A lot prettier.
I thought there would be a generic (basic) solution to this which I
just didn't know about but maybe I actually do know the basics by now :)
--
Simen

If we get opIn_r for arrays, you can do

if (var in [a, b, c, d]) {
}

Which I find a lot prettier.

Is this good enough?

struct CheckIf( T ) {
T payload;
bool opIn( T[] rhs ) {
foreach ( e; rhs ) {
if ( e == payload ) {
return true;
}
}
return false;
}
}

CheckIf!( T ) checkIf( T )( T rhs ) {
return CheckIf!( T )( rhs );
}

if ( checkIf( true ) in [ false, true, false ] ) {
}

Interesting solution! Very clever!

I still think opIn_r should be defined for arrays, though. :)

Reply via email to