I saw docs for std.experimental.allocator and also had found
automem library(https://code.dlang.org/packages/automem) for c++
style memory management via smartpointers.
From GC documentation std.experimental.allocator can not be used
for:
NewExpression
Array appending
Array concatenation
Array literals (except when used to initialize static data)
Associative array literals
Any insertion, removal, or lookups in an associative array
Extracting keys or values from an associative array
Taking the address of (i.e. making a delegate to) a nested
function that accesses variables in an outer scope
A function literal that accesses variables in an outer scope
An AssertExpression that fails its condition
Is that actual information? Does someone work to implement switch
between gc and non-gc approach?
I learned for now automem's smartpointers which based on
std.experimental.allocator can be used to store structs/classes.
Does automem(or std.experimental.allocator) has support for
inherited classes,
polymorphism like std::unique_ptr<ISomeInterface> (or base class)
in c++?
Does Phobos support std.experimental.allocator?
Are there another gotchas with "c++ like" memory management way
in D?
P.S. Sorry for my bad english.