Old Quora post: D vs Go vs Rust by Andrei Alexandrescu
jmh530
john.michael.hall at gmail.com
Fri Jan 5 20:20:04 UTC 2018
On Friday, 5 January 2018 at 03:11:42 UTC, jmh530 wrote:
>
> It also occurs to me that you could have a region for
> (completely) const/immutable data (not sure if you need to do
> this as a subregion within a precise region), assuming the GC
> can get that information. Transitive const/immutable means that
> pointers to this data cannot modify it. GC strategies that
> normally require write barriers wouldn't need them here.
In std.experimental.allocator, I was thinking that in something
like GCAllocator you could have the allocate function be a
template that changes the behavior based on the the type you are
trying to create. So for instance, if you are creating a
const/immutable object do one thing and if creating a mutable
object do something else. However, it looks like the allocate
function is not templatized so it might require a bit of
modification to get it work. It also mean the allocator would
depend on the type it is trying to create, which may not be a
design they want to pursue.
I noticed there is a second parameter in allocate in IAllocator
for TypeInfo. This is for run-time type info, but I don't see an
example for it.
More information about the Digitalmars-d
mailing list