SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
|
A transformation trait that returns the correct aligned sequence type for a given sequence type. More...
#include <seqan3/alignment/matrix/detail/aligned_sequence_builder.hpp>
Public Types | |
using | type = lazy_conditional_t< is_class_template_declarable_with_v< gap_decorator, unaligned_sequence_type >, lazy< gap_decorator, unaligned_sequence_type >, lazy< std::vector, gapped< std::ranges::range_value_t< unaligned_sequence_type > > > > |
The resulting aligned sequence type. | |
Private Types | |
using | unaligned_sequence_type = decltype(std::declval< range_t >()|views::type_reduce|views::slice(0, 1)) |
The unaligned sequence type that will be used to assign a sequence to seqan3::assign_unaligned. | |
A transformation trait that returns the correct aligned sequence type for a given sequence type.
range_t | The range type to be transformed. |
This transformation trait helps to define the correct type representing the aligned sequence. The aligned sequence type is defined as follows:
range_t
, if it is constructible, otherwiserange_t
.Note some ranges cannot be decorated with the seqan3::gap_decorator, e.g. a non-random access range. In this case the fallback is to always use std::vector and copy the content from the passed range to the vector.