Ring Span Lite Versions Save

ring-span lite - A C++yy-like ring_span type for C++98, C++11 and later in a single-file header-only library

v0.6.0

2 years ago

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 of class ring_span instead of a member (#23, thanks @dcolascione, @Quuxplusone).
  • Add tweak header support, see nonstd-lite-project issue 44 .

Changes:

  • none

Fixes:

  • none

v0.5.0

2 years ago

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 to class ring_span and class 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

v0.4.0

3 years ago

[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 https://github.com/martinmoene/nonstd-lite-project/issues/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 calling self.info.header_only(), but they a helpful for Conan CMake helper to detect generator correctly. https://github.com/martinmoene/nonstd-lite-project/issues/34

v0.3.0

5 years ago

[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.

v0.2.0

5 years ago

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.

v0.1.0

7 years ago

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<()

v0.0.0

7 years ago

Initial release.