July 26, 2009 [Issue 3210] New: Inconsistency in implicit casting of integral template value parameters | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3210 Summary: Inconsistency in implicit casting of integral template value parameters Product: D Version: 1.046 Platform: x86 OS/Version: All Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: komadori@gekkou.co.uk Given a template T(uint N), int values for N are implicitly cast to uint where N is used within the template body. However, the instantiation of T!(n) precedes the coercion of n to uint such that the template instances T!(1) and T!(1u), and any types defined within them, are distinct. I believe this should not be the case. Reproduced with DMD 1.046 under Linux and LDC r1522 under Solaris. Test case and compiler output below: --- module Test; struct Test(uint N) { int x; Test!(N) f(Test!(N) rhs) { return Test!(N)(x+rhs.x); } } void main() { Test!(1) x; x.f(x); } --- Test.d(16): Error: function Test.Test!(1).Test.f (Test!(1u)) does not match parameter types (Test!(1)) Test.d(16): Error: cannot implicitly convert expression (b) of type Test!(1) to Test!(1u) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
November 29, 2011 [Issue 3210] Inconsistency in implicit casting of integral template value parameters | ||||
---|---|---|---|---|
| ||||
Posted in reply to komadori@gekkou.co.uk | http://d.puremagic.com/issues/show_bug.cgi?id=3210 Kenji Hara <k.hara.pg@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #1 from Kenji Hara <k.hara.pg@gmail.com> 2011-11-28 16:59:59 PST --- *** This issue has been marked as a duplicate of issue 3467 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation