// int postblitCount; // int dtorCount; // struct S // { // @nogc nothrow: // int value; // this(this){ postblitCount++; } // ~this(){ if(value > 0) dtorCount++; } // } // S a = S(20); // S b = S(40); // assert(postblitCount == 0 && dtorCount == 0); // move(a, b); // assert(dtorCount == 1); // assert(postblitCount == 0); // assert(a == S.init); // assert(b.value == 20);