<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">When using pattern matching, explicit template arguments are necessary. You probably don't want that, the following code does not need them:<br>

<br>
void abc(T)(T parm1) if(!isDynamicArray!T)<br>
{<br>
    writeln("simpleparm: ", parm1);<br>
}<br>
<br>
void abc(T)(T parm1) if(isDynamicArray!T){<div><div></div><div class="h5"><br>
    writeln("array : ", parm1);<br>
}<br></div></div></blockquote><div><br></div><div><div>The output is:</div><div><br></div><blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
<div><font class="Apple-style-span" face="'courier new', monospace">simpleparm: 1</font></div><div><font class="Apple-style-span" face="'courier new', monospace">dynamic array : str</font></div><div><font class="Apple-style-span" face="'courier new', monospace">dynamic array : [1, 2]</font></div>
</blockquote><div><br></div><div>which sort of makes sense, but doesn't fit my app. It is possible to treat a string as an array of characters, but in my case I  want to treat them as a single entity. The whole purpose of the array specialization is to search/manipulate/compare the individual elements of an array... except for strings.</div>
</div><div><br></div><div>Ok, so I modified a little to take care of strings. But I also added another test for a static array and it's not playing nice anymore. </div><div><br></div></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">void abc(T, U=void) (T parm1)</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  {</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  writeln("simpleparm: ", parm1);</font></div></div></div><div class="gmail_quote"><div><div>
<font class="Apple-style-span" face="'courier new', monospace">  }</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">void abc(T: string) (T parm1)</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  {</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  writeln("string : ", parm1);</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  }</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">void abc(T:U[], U) (T parm1)</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  if (isDynamicArray!T)</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  {</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  writeln("dynamic array : ", parm1);</font></div></div></div><div class="gmail_quote"><div><div>
<font class="Apple-style-span" face="'courier new', monospace">  }</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">void abc(T:U[], U) (T parm1)</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  if (!isDynamicArray!T)  //tried isStaticArray as well here</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  {</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  writeln("static array : ", parm1);</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  }</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace"><br>
</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">void main(string[] args)</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  {</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">    writeln("v4");</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">    abc(1);</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">    abc("str");</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">    int[] arr = [1, 2];</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">    abc(arr);</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">    int[2] arr2 =[3, 4];<br>
    writeln("arr2 ", __traits(isStaticArray, arr2));</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">    abc(arr2);</font></div></div>
</div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">  }  </font></div></div></div></blockquote><div class="gmail_quote"><div><br></div><div>Output is:</div></div>
<blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">simpleparm: 1</font></div>
</div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">string : str</font></div></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">dynamic array : [1, 2]</font></div>
</div><div><font class="Apple-style-span" face="'courier new', monospace">arr2 true</font></div></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="'courier new', monospace">simpleparm: [3, 4]      // should be "static array: [3, 4]"</font></div>
</div></div></blockquote><div class="gmail_quote"><div><br></div><div>John</div><div><br></div><div><br></div></div><div><br></div>