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 ] ) {
}

--
Simen

Reply via email to