https://issues.dlang.org/show_bug.cgi?id=17448

--- Comment #33 from Shachar Shemesh <shac...@weka.io> ---
Like we said earlier, the safe implications are important, but are not the core
of this bug report.

The problem is that, as things stand with D, certain types of programming
become impossible.

For example, consider a RAII object protecting a resource (say, a file
descriptor). For debugging purposes, we want to have a version(debug) option
for tracking all such objects within the system.

Under C++, what we'd do is to have a global linked list head, and have each
RAII object register itself with the linked list in the constructor and
deregister itself in the destructor.

If necessary, we would have a move constructor that shifts the registration
when the RAII is moved.

This last step is impossible in D. You cannot be notified when the object
moves, and once it does, the global linked list will get completely corrupted.

--

Reply via email to