http://d.puremagic.com/issues/show_bug.cgi?id=6221
--- Comment #2 from Don <clugd...@yahoo.com.au> 2011-06-29 23:54:17 PDT --- (In reply to comment #1) > I think this bug is invalid. A value-type return is an rvalue, and Andrei has > made it very clear in his posts and in TDPL that rvalues cannot be bound to > const ref parameters. I think his reasoning is that this ability was a > mistake > in C++, though I haven't gotten consistent answers as to why. That's probably true. But that has consequences. We can't discard that C++ behaviour and yet keep the C++ behaviour of using const ref in operator overloads: > The fact that it works with opCmp in one direction is I think a relaxation of > the rules, because struct returns would be near useless if you couldn't call > any methods on them. This is a serious problem. opCmp behaviour MUST be symmetrical. S foo() {...} S x; x > foo() foo() < x foo() > foo() If any of these compile, they must all compile. As far as I can tell, a 'const ref' parameter on pretty much any operator overload, is a bug. In fact it's difficult to come up with _any_ scenarios where 'const ref' makes sense. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------