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? >> >> >>