Garbage Collection Pitfall in C++ but not in D?
Denis Shelomovskij
verylonglogin.reg at gmail.com
Fri Jul 6 07:07:40 PDT 2012
06.07.2012 17:43, akaz пишет:
> Hi,
>
> Reading about the C++11, I stumbled upon this:
>
> http://www2.research.att.com/~bs/C++0xFAQ.html#gc-abi
>
> Specifically (quote):
>
> int* p = new int;
> p+=10;
> // ... collector may run here ...
> p-=10;
> *p = 10; // can we be sure that the int is still there?
>
> How does the D garbage collector solves (answers) that?
>
> Thank you.
If you are interested in D read this first:
http://dlang.org/garbage.html
You can find there e.g.:
> Do not add or subtract an offset to a pointer such that the result
points outside of the bounds of the garbage collected object originally
allocated.
So `p+=10;` is already "undefined behavior".
--
Денис В. Шеломовский
Denis V. Shelomovskij
More information about the Digitalmars-d-learn
mailing list