The allocator is a singleton, so no need to pass it in to the constructor
Non-singleton allocator, must be passed in
Assign to an lvalue RefCounted
Assign to an rvalue RefCounted
Prevent opSlice and opIndex from being hidden by Impl*. This comment is deliberately not DDOC.
Prevent opSlice and opIndex from being hidden by Impl*. This comment is deliberately not DDOC.
Dereference the smart pointer and yield a reference to the contained type.
Factory method to enable construction of structs despite structs not being able to have a constructor with no arguments.
Factory method. Not necessary with non-global allocator but included for symmetry.
A reference-counted smart pointer similar to C++'s std::shared_ptr.