Releases: martinmoene/ring-span-lite
v0.7.0
ring_span-lite v0.7.0 adds the ability to use C-array and std::array
as container type with the data owning class nonstd::ring
.
Additions:
- Add ability to use C-array and
std::array
as container type with the data owning classnonstd::ring
(#33, thanks @Crzyrndm). - Add
operator+(int, iterator)
overload (#30, #31, thanks @Crzyrndm). - Add indexing operators to ring span iterator type (#30, #31, thanks @Crzyrndm)
- Add GitHub Actions CI, see nonstd-lite-project issue 55.
- Add CMakeLists.txt for examples, see nonstd-lite-project issue 56.
- Add
example/03-make-ring-span-cpp98.cpp
Changes:
- Add C++20, C++23 to tg-all.bat
- Move definition of class ring into namespace
nsrs
and make it available in namespacenonstd
. - Remove Travis CI configuration and badge (#28, thanks @striezel).
- Do not cancel all jobs in a workflow if one fails. (#27, thanks @striezel). See nonstd-lite-project issue 71.
- Update actions/checkout in GitHub Actions to v3 (#26, thanks @striezel)
- Remove gcc 8 and clang 8, 9, 10 from GitHub CI matrix, see nonstd-lite-project issue 69.
- In CMakeLists.txt, use toplevel
unit_name
nonstd-lite-project 56. - Add msvc (windows-2022) image to GitHub Actions nonstd-lite-project issue 62.
- Remove msvc (windows-2016) image from GitHub Actions nonstd-lite-project issue 61, thanks @xavier2k6.
- Change value used with
*_CPP20_OR_GREATER
to202002L
, see nonstd-lite-project issue 49. - Add usage of
[[msvc::no_unique_address]]
for_MSVC_VER >= 1929
, see devblogs article.
Fixes:
- Fix a small typo (#25, thanks @striezel).
- Fix CMake config file to use
@package_nspace@
, see nonstd-lite-project issue 68. - Fix compilation issue in
example/03-make-ring-span.cpp
(#24, thanks @DougRogers)
Full Changelog: v0.6.0...v0.7.0
0.6.0
ring_span-lite v0.6.0 adds a compile-time configuration flag to benefit from empty base-class optimization for the popper, and adds tweak header support.
Additions:
- Add configuration flag
nsrs_CONFIG_POPPER_EMPTY_BASE_CLASS
to make the popper a base class ofclass ring_span
instead of a member (#23, thanks @dcolascione, @Quuxplusone). - Add tweak header support, see nonstd-lite-project issue 44 .
Changes:
- none
Fixes:
- none
0.5.0
ring_span-lite v0.5.0 adds template parameter flag CapacityIsPowerOf2
and class ring
.
CapacityIsPowerOf2
is an extension (nsrs_CONFIG_STRICT_P0059=0
). With CapacityIsPowerOf2
being true
, method normalize_()
to compute the buffer index is optimized to use bitwise and instead of modulo division.
class ring
is a data-owning ring class. See the discussion on design at issue #20.
Additions:
- Add data-owning
class ring
(#20, thanks to @peter-moran). - Add
ring_iterator::operator->()
(#21, thanks @Lyle-Alloy, @Quuxplusone). - Add
CapacityIsPowerOf2
template parameter toclass ring_span
andclass ring
(#22, thanks @dcolascione). - Add script
test/tc-cl.bat
to compile with clang-cl (nonstd-lite-project issues 54). - Add
export()
to CMakeLists.txt enabling importing targets. - Add image Visual Studio 2019 to AppVeyor CI.
Changes:
- Handle lest test framework as system include to prevent warnings.
- Change 'on conan' link to refer to conan center.
Fixes:
- none
0.4.0
[to be expanded]
This release of ring-span-lite lite ...
Additions
Changes
Fixes
- [skip ci] Add .editorconfig
- [skip ci] Add TortoiseGit integration with GitHub issues
- [skip ci] Add build folder to .gitignore
- [skip ci] Add IDE folders/files to .gitignore (.vs, .vscode, CodeBlocks)
- [skip ci] Add 'ring_span' by Jan Wilmans to section 'Other ring-span implementations'
- [skip ci] Adapt, guided by markdown lint
- [skip ci] Add 'Circular span' by Bjørn Reese to section 'Other ring-span implementations'
- Change requires to use a default template argument (nonstd-lite-project 40), Fixes implementation of nsrs_REQUIRES_T(), see martinmoene/nonstd-lite-project#40
- [skip ci] Improve MSVC version table (nonstd-lite-project issue 38
- [skip ci] Use #include in code on Godbolt
- [skip ci] Update test specification in Readme (#18)
- Add tag [extension] for non nsrs_CONFIG_STRICT_P0059 code
- Use assert() as statement, not expression (#18, thanks to @Quuxplusone); in PR merge review comment
- Add operator[] (#18, thanks to @Neargye)
- add operator[]
- add test operator[]
- update readme
- [skip ci] Add test to Readme, use the term Constructing, #17
- Add code and test, closes #17, thanks to @justinboneh and @Quuxplusone
- Add test for #17 (C++98), thanks to @justinboneh and @Quuxplusone
- Add test for #17, thanks to @justinboneh and @Quuxplusone
- [skip ci] Add example to clear ring span via assignment (#16)
- [skip ci] Change vcpkg install to use CMake
- Improve macro usage consistency (package_config_version)
- [skip ci] Add settings options to conanfile (thanks to @ngrodzitski)
Settings will be removed from package_id after callingself.info.header_only()
, but they a helpful for Conan CMake helper to detect generator correctly. martinmoene/nonstd-lite-project#34
0.3.0
[to be expanded]
This release of ring-span-lite lite improves support for CMake and Conan and contains numerous other changes and fixes.
See also nonstd lite project Improve coherence between lite projects.
0.2.0
Additions
- Add conversion to const ring_iterator
Changes
- class
copy_popper
now has a single constructor that a) takes its parameter by value if compiled with C++11 or later, or b) takes it parameter by const& otherwise (@Quuxplusone sg14 issue 102). - const, noexcept specifiers have been added to popper value access methods.
0.1.0
This release of ring-span lite contains several unrelated changes.
Additions
- Buck builds (thanks to Nick La Rooy @njlr )
- Configuration macro
nsrs_CONFIG_STRICT_P0059
to omit ring-span lite extensions - CMake option
RING_SPAN_LITE_COLOURISE_TEST
to control colouring of test output - Tests on empty, non-empty, full, non-full spans
- Tests for mixed const - non-const iterator comparisons
- Tests that describe delay-line, stack, harmonica behaviour
- Section in appendix of Readme on compile-time information
- Table in Readme describing class
ring_iterator
Fixes
- Fix flags -std=c++11, -std=c++14 for clang in test/CMakeLists.txt
- Express ring_iterator operator<=() in operator<()
0.0.0
Initial release.