On Mon, 21 Apr 2014 23:25:39 -0400, Taylor Hillegeist <taylorh...@gmail.com> wrote:

So I find myself Doing this kind of thing very frequently. I have a Array of Somethings and i want to see if "something specific" is inside the array. I wrote a template for it. but is this the best way to do this kind of thing. I feel like it doesn't help with readability. Is there a better way? Maybe i missed something in the std library.

import std.stdio;


Change this:

template FNDR(T){

To  this:

template isIn(T) {

     bool isIn(T Element, T[] Array){
         bool rtn=false;
         foreach(T ArrayElement; Array){
             if(Element==ArrayElement){
                 rtn=true;
             }
         }
     return rtn;
     }
}

void main(string[] args)
{
     int[3] stuff=[0,1,2];
     if (FNDR!int.isIn(2,stuff))

now: if(isIn(2, stuff))

see implicit function template instantiation (IFTI) in docs.

Also, using UFCS (Unified Function Call Syntax (I think)), we can do:

if(2.isIn(stuff))

Or if you swap the parameters, and perhaps rename your template/function:

if(stuff.contains(2))

     {
         writeln("Hello World!");
     }
}

-Steve

Reply via email to