FixedString 2.0.0
zoujiaqing
zoujiaqing at gmail.com
Sun May 22 15:37:24 UTC 2022
On Sunday, 22 May 2022 at 15:16:59 UTC, Moth wrote:
> [Version 2.0.0 of
> FixedString](https://github.com/Moth-Tolias/fixedstring/releases/tag/v2.0.0), my @safe @nogc nothrow array type, has been released.
>
> This version is mostly compatible with 1.2.0, but the helper
> template `FixedString!"foo"` has been changed to
> `fixedString!"foo"` to comply with the standard D style
> convention. Furthermore, the range api has been totally
> overhauled; in particular, `opIndex()` now returns a range
> (random access, with slicing) rather than a raw slice, and the
> functions `empty()`, `front()`, and `popFront()` have thus been
> removed from the container.
>
> Previously, it was possible to modify out-of-bounds elements
> with `opIndex` if the maximum size of the `FixedString` would
> allow it. This behaviour does not align with that of native
> dynamic arrays, however, so it has been removed. The correct
> way to perform this action is to either use the `~=` operator,
> or alternatively set the length to an appropriate value
> beforehand.
>
> It is now possible to use FixedString with types that use the
> garbage collector, throw, or have otherwise unsafe behaviour,
> as the element type. This was impossible in 1.x.x as almost
> every function had the `@nogc nothrow pure @safe` attributes
> applied. However, templates in D automatically infer their
> attributes - meaning this restriction was unnecessary. As such,
> it has been lifted.
>
> There have also been a number of fixes.
> - `opAssign`, `opOpAssign`, `opEquals`, `concat` and `opBinary`
> all assumed they would only ever be used with the `char`
> element type. This oversight has been fixed.
> - `opSlice` is now bounds checked.
>
> And finally, FixedString is now compatible with dip1000.
>
> [repository](https://github.com/Moth-Tolias/fixedstring)
> [dub package](https://code.dlang.org/packages/fixedstring/2.0.0)
> [documentation](https://fixedstring.dpldocs.info/v2.0.0/fixedstring.html)
> [full
> changelog](https://github.com/Moth-Tolias/fixedstring/blob/main/CHANGELOG.md#200---2022-05-22)
Thank you for work!
What about his performance?
More information about the Digitalmars-d-announce
mailing list