Why does g(cs) compile but not G(cs)?

Thanks,
Dan

struct S{}

void g(ref S i) {}
void g(const ref S i) {}
void G(T)(ref T i) {}
void G(T)(const ref T i) {}

void main() {
  S s;
  const(S) cs;
  g(s);
  g(cs);
  G(s);
// Error: template p.G matches more than one template declaration, /p.d(5):G(T) and /p.d(6):G(T)
  // G(cs);
}

Reply via email to