Skip to content

Commit fcda9f2

Browse files
authored
Merge pull request #3430 from eseiler/fix/pairwise_combine
fix: pairwise_combine_view
2 parents 944c600 + 6c415f5 commit fcda9f2

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

‎include/seqan3/utility/tuple/concept.hpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ template <typename tuple_t>
102102
requires requires () {
103103
{ detail::all_elements_model_totally_ordered(tuple_type_list_t<tuple_t>{}) };
104104
}
105-
static constexpr bool all_elements_model_totally_ordered_v =
105+
inline constexpr bool all_elements_model_totally_ordered_v =
106106
decltype(detail::all_elements_model_totally_ordered(tuple_type_list_t<tuple_t>{}))::value;
107107
} // namespace seqan3::detail
108108

‎include/seqan3/utility/views/pairwise_combine.hpp‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,15 @@ class pairwise_combine_view<underlying_range_type>::basic_iterator :
273273
using reference = common_tuple<underlying_ref_t, underlying_ref_t>;
274274
//!\brief The pointer type.
275275
using pointer = void;
276-
//!\brief The iterator concept tag.
277-
using iterator_concept = detail::iterator_concept_tag_t<underlying_iterator_type>;
276+
/*!\brief The iterator concept tag.
277+
* \details
278+
*
279+
* This iterator returns a prvalue proxy (seqan3::common_tuple) and can therefore never be contiguous, even if
280+
* the `underlying_iterator_type` is. In that case, the concept is downgraded to std::random_access_iterator_tag.
281+
*/
282+
using iterator_concept = std::conditional_t<std::contiguous_iterator<underlying_iterator_type>,
283+
std::random_access_iterator_tag,
284+
detail::iterator_concept_tag_t<underlying_iterator_type>>;
278285
//!\}
279286

280287
/*!\name Constructors, destructor and assignment

0 commit comments

Comments
 (0)