On 02.02.2016 23:48, Ali Çehreli wrote:
struct S {
const int c; // Makes S non-assignable
immutable int i; // Makes S non-assignable
}
void main() {
auto a = S();
auto b = S();
a = b; // Compilation ERROR
}
(That is the same issue in C++.)
That's why I've been avoiding them altogether. However, considering that
there is no default-assignment for classes, there is no problem with
using const or immutable members with classes, right?
I'm not sure what you mean by "default assignment". I'd say it works
more simply with classes, because they're reference types. It's the same
as using pointers to structs:
auto a = new S();
auto b = new S();
a = b; /* no problem */