I don't understand a const
Michal Minich
michal.minich at gmail.com
Thu Sep 2 12:00:59 PDT 2010
On Thu, 02 Sep 2010 11:11:52 -0700, Brad Roberts wrote:
> On 9/2/2010 5:59 AM, Simen kjaeraas wrote:
>> void bar(T)(const T x, out T y) {}
>>
>> void main() {
>> const int s1;
>> int s2;
>> bar(s1, s2);
>> }
>>
>> It seems DMD is confused by const(int) being such a nice fit for the
>> first parameter. This might have to do with s2 = s1 being ok.
>>
>> It is probably worth noting that this works:
>>
>>
>> import std.traits;
>>
>> void bar(T)(const T x, out T y) {}
>>
>> void main() {
>> const int s1;
>> int s2;
>> bar!(CommonType!(s1,s2))(s1, s2);
>> }
>
> http://d.puremagic.com/issues/show_bug.cgi?id=4594
Right! its dmd bug in implicit instantiation:
void bar(T)(const T x, T y) {}
void main () {
const int s1;
int s2;
bar!(const int)(s1, s2); // pass ok
bar!(int)(s1, s2); // pass ok
bar(s1, s2); // error
}
More information about the Digitalmars-d-learn
mailing list