On Monday, August 29, 2011 22:41:26 Sean Eskapp wrote: > I am trying to build a struct with equality testing, using this code: > > struct Foo > { > const bool opEquals(Foo f) > { > return true; > } > } > > This gives me the error that the parameter should be of type "ref const > Foo". Fine. > > struct Foo > { > const bool opEquals(ref const Foo f) > { > return true; > } > } > > This, however, does not work with code like: > > Foo bar() > { > return Foo(); > } > > assert(Foo() == bar()); > > "function Foo.opEquals(ref const const(Foo) f) const is not callable using > argument types (Foo)" and "bar() is not an lvalue". > > How can I do this?
http://d.puremagic.com/issues/show_bug.cgi?id=3659 http://stackoverflow.com/questions/6986175/const-ref-and-rvalue-in-d - Jonathan M Davis