I found a dmd bug. Is this the bug which you have seen?
http://d.puremagic.com/issues/show_bug.cgi?id=8522

Kenji Hara

2012/8/9 kenji hara <k.hara...@gmail.com>:
> In the declaration of std.typecons.Tuple:
>
>     bool opEquals(R)(R rhs) if (isTuple!R)
>     {
>         // [snip]
>     }
>
>     bool opEquals(R)(R rhs) const if (isTuple!R)
>     {
>         // same as non-const version
>     }
>
> Adding const version works correctly.
> What's the problem?
>
> Kenji Hara
>
> 2012/8/8 Tobias Pankrath <tob...@pankrath.net>:
>> You currently can't use Tuples with std.container.Array (Bug #8284)
>>
>> To fix this, I tried to overload the opEquals(R)(R rhs) of Tuple with
>> a const version opEquals(R)(R rhs) const. But the compiler does not use the
>> overload if opEquals is called on a const tuple instance.
>>
>> See this thread in d.learn
>> http://forum.dlang.org/thread/vghlctzlpqxhoeojq...@forum.dlang.org
>>
>> The orignal bug is solved, if you mark the current opEquals const, but I
>> don't know if this would brake code outside of phobos, so I tried the
>> overload.
>>
>> Coming to the question: Is it a bug that the const overload is not
>> considered and what is the correct way to fix std.typecons.Tuple?
>>
>>
>>

Reply via email to