On 02/08/2012 02:29 AM, H. S. Teoh wrote:
Hi all,

I'm trying to reverse a character array. Why doesn't the following work?

        import std.algorithm;
        void main() {
                char[] array = ['a', 'b', 'c'];
                reverse(array);
        }

I get:

Error: template std.algorithm.reverse(Range) if (isBidirectionalRange!(Range)&& 
 hasSwappableElements!(Range)) does not match any function template declaration
Error: template std.algorithm.reverse(Range) if (isBidirectionalRange!(Range)&& 
 hasSwappableElements!(Range)) cannot deduce template function from argument types 
!()(char[])


T


char[] is handled by Phobos as a range of dchar, ergo it does not have swappable elements. Apparently there is no template specialisation of 'reverse' that handles narrow strings, you might want to file an enhancement request.

Reply via email to