what's the point of function template declarations if they can't be defined?

Timothee Cour thelastmammoth at gmail.com
Wed Feb 7 21:39:55 UTC 2018


```
void fun_bad3(T)(T a);  // declaration [1]
void fun_bad3(T)(T a){};  // definition [2]
void test(){
  fun_bad3(1);
}
```
Error: test_all.fun_bad3 called with argument types (int) matches both:
main.d(11):     test_all.fun_bad3!int.fun_bad3(int a)
and:
main.d(12):     test_all.fun_bad3!int.fun_bad3(int a)

should [1] be allowed? compler doens't allow defining it afterwards in
[2] (unlike function definitions, and, well, modulo this regression
https://issues.dlang.org/show_bug.cgi?id=18393)


More information about the Digitalmars-d-learn mailing list