SeqAn3
3.0.1
The Modern C++ library for sequence analysis.
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
two_dimensional_matrix_iterator_concept.hpp
Go to the documentation of this file.
1
// -----------------------------------------------------------------------------------------------------
2
// Copyright (c) 2006-2020, Knut Reinert & Freie Universität Berlin
3
// Copyright (c) 2016-2020, Knut Reinert & MPI für molekulare Genetik
4
// This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5
// shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6
// -----------------------------------------------------------------------------------------------------
7
13
#pragma once
14
15
#include <type_traits>
16
17
#include <
seqan3/alignment/matrix/detail/matrix_coordinate.hpp
>
18
#include <
seqan3/std/concepts
>
19
#include <
seqan3/std/iterator
>
20
21
namespace
seqan3::detail
22
{
23
91
template
<
typename
iter_t>
94
SEQAN3_CONCEPT two_dimensional_matrix_iterator =
95
std::random_access_iterator<iter_t> &&
96
requires(
std::remove_reference_t<iter_t>
it,
std::remove_reference_t<iter_t>
const
cit, matrix_offset
offset
)
97
{
98
{ it +=
offset
};
99
{ it +
offset
};
100
{
offset
+ it };
101
{ cit +
offset
};
102
{
offset
+ cit };
103
{ it -=
offset
};
104
{ it -
offset
};
105
{ cit -
offset
};
106
{ it.coordinate() };
107
{ cit.coordinate() };
108
109
requires
std::same_as
<decltype(it +=
offset
),
std::remove_reference_t<iter_t>
&>;
110
requires
std::same_as
<decltype(it +
offset
),
std::remove_reference_t<iter_t>
>;
111
requires
std::same_as
<decltype(
offset
+ it),
std::remove_reference_t<iter_t>
>;
112
requires
std::same_as
<decltype(it -=
offset
),
std::remove_reference_t<iter_t>
&>;
113
requires
std::same_as
<decltype(it -
offset
),
std::remove_reference_t<iter_t>
>;
114
requires
std::same_as
<decltype(cit -
offset
),
std::remove_reference_t<iter_t>
>;
115
requires
std::same_as
<decltype(it.coordinate()), matrix_coordinate>;
116
requires
std::same_as
<decltype(cit.coordinate()), matrix_coordinate>;
117
};
119
}
// namespace seqan3::detail
matrix_coordinate.hpp
Provides seqan3::detail::alignment_coordinate and associated strong types.
seqan3::field::offset
Sequence (SEQ) relative start position (0-based), unsigned value.
iterator
Provides C++20 additions to the <iterator> header.
concepts
The Concepts library.
same_as
The concept std::same_as<T, U> is satisfied if and only if T and U denote the same type.
std::remove_reference_t
seqan3
alignment
matrix
detail
two_dimensional_matrix_iterator_concept.hpp
Generated on Tue Feb 18 2020 09:33:17 for SeqAn3 by
1.8.16