File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments