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

Jacob Carlborg doob at me.com
Thu Feb 8 12:21:35 UTC 2018


On 2018-02-07 22:39, Timothee Cour wrote:
> ```
> 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)

Perhaps if it's defined in another file.

-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list