Jérôme M. Berger wrote:
And what about this one:void func(T) (T range) { foreach (elem; range) assert (is (typeof (elem) == ElementType!(T))); } func ("azerty"); auto a = [ 1, 2, 3, 4, 5]; func (a);
You can specialize the template for strings: void func(T:string)(T range) { ... }