[Issue 2699] New: template functions doesn't specialize types of arguments correctly.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Mar 1 03:11:30 PST 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2699
Summary: template functions doesn't specialize types of arguments
correctly.
Product: D
Version: 2.025
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: kk_tnr at hotmail.com
DMD 2.205 on Windows
See this code.
import std.stdio: writefln;
void main( ){
int a = 1;
funcA( [a] );
funcA!( typeof( [a] ))( [a] );
}
void funcA( T )( T t ){
writefln( "funcA, T" );
}
void funcA( T: T[] )( T[] t ){
writefln( "funcA, T: T[]" );
}
It is compiled with no errors.
Result:
funcA, T
funcA, T: T[]
This means, 'funcA( [a] );' is not equal to 'funcA!( typeof( [a] ))( [a] );'
Perhaps it is not a bug, but is not good spec.
Thank you for your reading.
--
More information about the Digitalmars-d-bugs
mailing list