// REQUIRED_ARGS: shared struct S { int x = 0; int opUnary(string s)() if (s == "++") { import core.atomic : atomicOp; return atomicOp!"+="(x, 1); } } shared class C { int x = 0; int opUnary(string s)() if (s == "++") { import core.atomic : atomicOp; return atomicOp!"+="(x, 1); } } void main() { S s; s++; shared(C) c = new C(); c++; }