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