On 2009-12-14 11:04:53 -0800, Leandro Lucarella <[email protected]> said:

lws, el 14 de diciembre a las 08:31 me escribiste:
Unless I'm confused, classses are ALWAYS heap (unless explicitely
scoped) objects in D.

Yes, and classes are always references too. But that's not even the point,
the point is, the example was a struct :)

Even if they are always references, they behave as pass-by-value types. Also, excuse me I read struct as class for some reason earlier. (*doh!*)

This error-that-should-be-warning is for both types though.



struct Foo {
bool opEquals(const ref Foo rhs) const {  // Only signature
// that compiles.
return true;
}
}

Foo getFoo() {
return Foo();
}

void main() {
Foo foo = getFoo();
bool isEqual = foo == getFoo();
}

Error:  Foo.opEquals type signature should be const bool(ref const(Foo)) not
const bool(Foo rhs)

Will this be getting fixed witht he new operator overloading?

[snip]
(And please don't top quote, argh! ;))

!!!


Reply via email to