Boost Software License Version 1.0. See LICENSE_BOOST.txt for details. Alternatively, this file may be distributed under the terms of the Tango 3-Clause BSD License (see LICENSE_BSD.txt for details).
Copyright (c) 2016 dunnhumby Germany GmbH. All rights reserved.
Utility for manipulation of reusable mutable array buffers.
Notes: * Because of a DMD1 bug, declaring Buffer!(Buffer!(T)) is not possible and will result in a compile-time error complaining about recursive template instantiation. * Buffers of void of any dimension greater than one are disallowed (i.e. Buffer!(void) is allowed; Buffer!(void[]), Buffer!(void[][]), etc are not). For > 1d arrays, you should use buffers of ubyte instead. The reason for this limitation is that any array type can be implicitly cast to void[], leading to internal ambiguities in the code of Buffer. (A fix for this problem may possible, but would add a lot of complexity to the code.)