Bug 18613 – Documentation: recommended construction/destruction patterns for manual memory management

Status
NEW
Severity
enhancement
Priority
P4
Component
dlang.org
Product
D
Version
D2
Platform
All
OS
All
Creation time
2018-03-15T00:33:06Z
Last change time
2024-12-15T15:24:52Z
Assigned to
No Owner
Creator
Manu
Moved to GitHub: dlang.org#3973 →

Comments

Comment #0 by turkeyman — 2018-03-15T00:33:06Z
A colleague couldn't find an article he expected to exist. I'm posting this on his behalf, because bugzilla doesn't use github login credentials "yeah I literally clicked twice, was asked for login, closed :P" ``` Coming from C++ I was looking for delete after I did my new. I then found that there was no delete because of GC. To stay close to my C++ approach I decided not to use GC which then prompted the issue, how do I call the dtor + free. Current solution, make a function myDelete that calls dtor and free by hand. Could use an article explaining the approach and highlighting pros and cons for each method. It would also be useful to have a section on what is the preferred way to do this manual memory management in D and why. ```
Comment #1 by greeenify — 2018-03-15T06:17:18Z
Thanks a lot for opening the request on his behalf. (We might modernize Bugzilla, so stay tuned) Does your colleague know about the GC series?https://dlang.org/blog/the-gc-series Also did your colleague find https://dlang.org/articles/cpptod.html? Maybe this page could then be expanded. > Current solution, make a function myDelete that calls dtor and free by hand. The preferred way is to use make and dispose from std.experimental.allocator - they are the D analogies to malloc and free though a lot smarter (and dispose calls the destructor).
Comment #2 by turkeyman — 2018-03-15T06:46:57Z
He's interacting with existing C++ code, and doesn't want to have conflicting allocation strategies. It's gamedev, so custom allocation mechanisms are already in use. He did find the cpptod, read it, but he suggested there were still questions. I'll dig for his thoughts at lunch tomorrow :) I'll point him to std.experimental.allocator. Thanks!
Comment #3 by robert.schadek — 2024-12-15T15:24:52Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dlang.org/issues/3973 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB