[Issue 11873] New: function templates conflict with aliases
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Jan 5 13:34:15 PST 2014
https://d.puremagic.com/issues/show_bug.cgi?id=11873
Summary: function templates conflict with aliases
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: monarchdodra at gmail.com
--- Comment #0 from monarchdodra at gmail.com 2014-01-05 13:34:13 PST ---
Apparently, this is according to spec, but I think it should be legal.
Simple functions? No problem:
//----
void foo();
void bar(int);
alias foo = bar;
void main()
{
foo();
foo(5);
}
//----
Templates? Problem:
//----
void foo()(); //Template here
void bar(int);
alias foo = bar;
void main()
{
foo();
foo(5);
}
//----
main.d(4): Error: alias main.foo conflicts with template main.foo()() at
main.d(1)
//----
I think there should not be such a conflict. There is no reason for the alias
not to work.
The above code is trivial, but a real world scenario where this can happen, is
when a module wants to publicly import a named template function overload:
A.d
//----
module a;
foo(int); //Special "int" overload
//----
B.d
//----
module b;
foo()(); //Standard 0-arg signature;
public import A : foo; //re-use "int"
//----
Because of this,
--
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list