0.6.0
Summary: The alphabet module is almost API-stable. Several things in meta and ranges were cleaned up.
Added
bio::meta::one_of
,bio::meta::decays_to
andbio::meta::different_from
concepts.bio::meta::vtag
,bio::meta::ttag
andbio::meta::priority_tag
.bio::ranges::back_insertable
andbio::ranges::back_insertable_with
as light-weight "container" concepts.bio::views::char_strictly_to
andbio::views::validate_char_for
; as well asbio::views::char_conversion_view_t
.bio::views::transform_by_pos
, a more flexible version ofstd::views::transform
.bio::views::add_reverse_complement
which turns a range of sequences into a range of sequences with their reverse complements interleaved as every second element.
Fixed
- Some edge-cases with composite alphabets were fixed.
- Many potential bugs and missed optimisations found by clang-tidy (and fixed).
bio::ranges::dynamic_bitset
was not anoutput_range<bool>
because of incomplete proxy types.
Maintained
bio::views::translate*
have been redefined in terms ofbio::views::transform_by_pos
(much less code);bio::views::translate_single
is now ininclude/bio/ranges/views/translate_single.hpp
.- Cleaned up most of the concept mess in composite alphabets.
- All alphabet literals (e.g. 'C'_dna4, "GATTACA"_dna4) are now strict and validated at compile-time. Character literals are
consteval
. This prevents bugs early on.
Renamed
bio::alphabet::alphabet_*
tobio::alphabet::*
, e.g.bio::alphabet::alphabet_variant
tobio::alphabet::variant
.bio::alphabet::cpo::
tobio::alphabet::custom::
; renamebio/alphabet/adaptation
tobio/alphabet/custom
and move customisation tags to that folder.bio::ranges::views::to()
has been renamed tobio::ranges::to()
to be in line with C++23.
Removed
bio::alphabet::*_vector
aliases were removed; just usestd::vector<alphabet>
instead.bio::meta::*
several unused traits were removed.bio::ranges::pseudo_random_access_iterator
andbio::ranges::pseudo_random_access_range
have been removed (because they are not used).bio::ranges::sequence
concept has been removed (because it is not used).bio::views::get
has been removed. Usestd::views::elements
instead (same functionality).
API
- This release is not yet API-stable.
- This release is mostly backwards compatible with 0.5.0 (see changes above).