import std.stdio;
struct Foo {
int a;
this(int x) { a = x; }
}
struct Bar {
Foo* foo;
this(Foo* f) { foo = f; }
void print() const {
writeln(foo.a);
}
}
void main() {
auto foo = new Foo(10);
const bar = const Bar(foo);
bar.print();
//bar.foo.a = 11; // ошибка компиляции, bar иммутабелен?
foo.a = 11; // опаньки, bar мутировал, компилятор не возражает
bar.print();
}