|
|
|
|
|
by eco
3288 days ago
|
|
@nogc just causes the compiler to error out when a GC allocation occurs in the region marked @nogc and its call graph. You are then expected to manage memory yourself. You could rename it @c_or_cpp_style_memory_management_only. You can malloc/free (scope(exit) is useful here), use smart pointers, alloca, static arrays, use Andrei's allocators[1], or whatever else you'd use in C or C++. The answer to all of your questions is basically the same as they are in C and C++. D does have @safe though which prevents unsafe memory operations and Walter is in the process of ratcheting up the memory safety with DIP1000[2]. 1. https://dlang.org/phobos/std_experimental_allocator.html
2. https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md |
|