On Sunday, 2 August 2015 at 08:08:05 UTC, tcak wrote: > [code] > void func1(N)( const N name ) > if( is(N: string) || is(N: char[]) ) > { > func2( name ); > } > > [...] This seems like the reasonable behavior to me. Perhaps you should use Unqual? http://dlang.org/phobos/std_traits.html#Unqual