On Thursday, October 21, 2010 17:13:32 Simen kjaeraas wrote: > Jonathan M Davis <[email protected]> wrote: > >> void fun( T )( T t ) if ( isInputRange!T && is( ElementType!T == dchar > >> ) ) > >> {} > > > > Though I'd suggest using Unqual!(ElementType!T). > > You're right, of course.
It can be quite baffling to have a template constraint start failing on you (particularly when it's several levels deep) just because you ended up using it with const. That's one of the reason that I specifically tested const and immutable versions of the various types in the datetime code that I have up for review. Without that, it's far too easy to miss things like a necessary Unqual! () and boom, your code doesn't work with const or immutable. Though I still haven't figured how to make SysTime immutable... (I think that it's because of the bug that makes postblit not work with const or immutable, but since the bug hasn't been fixed, I can't verify that...). - Jonathan M Davis
