Hi,

I'm working a bit with ranges atm. but there are definitely some things that are not clear to me yet. Can anyone tell me why the char arrays cannot be copied but the int arrays can?

import std.stdio;
import std.algorithm;

void main(string[] args) {

  // This works
  int[] a1 = [1,2,3,4];
  int[] a2 = [5,6,7,8];
  copy(a1, a2);

  // This does not!
  char[] a3 = ['1','2','3','4'];
  char[] a4 = ['5','6','7','8'];
  copy(a3, a4);

}

Error message:

test2.d(13): Error: template std.algorithm.copy(Range1,Range2) if (isInputRange!(Range1) && isOutputRange!(Range2,ElementType!(Range1))) does not match any function template declaration

test2.d(13): Error: template std.algorithm.copy(Range1,Range2) if (isInputRange!(Range1) && isOutputRange!(Range2,ElementType!(Range1))) cannot deduce template function from argument types !()(char[],char[])

Thanks,
Jonas

Reply via email to