import std.stdio;
struct S {
int i;
}
class C {
int j;
}
void main() {
S s;
writeln(s);
S s0 = s;
writeln(s0);
auto s1 = s;
writeln(s1);
// This won't compile; it yields:
// Error: cannot implicitly convert expression (new S) of type S* to S
//S s2 = new S;
// But this compiles...
auto s2 = new S;
writeln(s2);
writeln(*s2);
writeln(s2.i);
C c = new C();
writeln(c);
}
aW1wb3J0IHN0ZC5zdGRpbzsKCnN0cnVjdCBTIHsKCWludCBpOwp9CgpjbGFzcyBDIHsKICAgIGludCBqOwp9Cgp2b2lkIG1haW4oKSB7CiAgUyBzOwogIHdyaXRlbG4ocyk7CgogIFMgczAgPSBzOwogIHdyaXRlbG4oczApOwoKICBhdXRvIHMxID0gczsKICB3cml0ZWxuKHMxKTsKICAKICAvLyBUaGlzIHdvbid0IGNvbXBpbGU7IGl0IHlpZWxkczoKICAvLyBFcnJvcjogY2Fubm90IGltcGxpY2l0bHkgY29udmVydCBleHByZXNzaW9uIChuZXcgUykgb2YgdHlwZSBTKiB0byBTCiAgLy9TIHMyID0gbmV3IFM7CiAgCiAgLy8gQnV0IHRoaXMgY29tcGlsZXMuLi4KICBhdXRvIHMyID0gbmV3IFM7CgogIHdyaXRlbG4oczIpOwogIHdyaXRlbG4oKnMyKTsKICB3cml0ZWxuKHMyLmkpOwogIAogIEMgYyA9IG5ldyBDKCk7CiAgd3JpdGVsbihjKTsKfQ==