SeqAn3
3.0.2
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
SEQAN3_RETURN_TYPE_CONSTRAINT
(it += offset, std::same_as,
std::remove_reference_t<iter_t>
&);
110
SEQAN3_RETURN_TYPE_CONSTRAINT
(it + offset, std::same_as,
std::remove_reference_t<iter_t>
);
111
SEQAN3_RETURN_TYPE_CONSTRAINT
(offset + it, std::same_as,
std::remove_reference_t<iter_t>
);
112
SEQAN3_RETURN_TYPE_CONSTRAINT
(it -= offset, std::same_as,
std::remove_reference_t<iter_t>
&);
113
SEQAN3_RETURN_TYPE_CONSTRAINT
(it - offset, std::same_as,
std::remove_reference_t<iter_t>
);
114
SEQAN3_RETURN_TYPE_CONSTRAINT
(cit - offset, std::same_as,
std::remove_reference_t<iter_t>
);
115
SEQAN3_RETURN_TYPE_CONSTRAINT
(it.coordinate(), std::same_as, matrix_coordinate);
116
SEQAN3_RETURN_TYPE_CONSTRAINT
(cit.coordinate(), std::same_as, matrix_coordinate);
117
};
119
}
// namespace seqan3::detail
matrix_coordinate.hpp
Provides seqan3::detail::alignment_coordinate and associated strong types.
iterator
Provides C++20 additions to the <iterator> header.
concepts
The Concepts library.
SEQAN3_RETURN_TYPE_CONSTRAINT
#define SEQAN3_RETURN_TYPE_CONSTRAINT(expression, concept_name,...)
Same as writing {expression} -> concept_name<type1[, ...]> in a concept definition.
Definition:
platform.hpp:57
std::remove_reference_t
Version:
main_user
main_dev
3.4.0
3.3.0
3.2.0
3.1.0
3.0.3
3.0.2
3.0.1
3.0.0
seqan3
alignment
matrix
detail
two_dimensional_matrix_iterator_concept.hpp
Generated on Thu Dec 3 2020 18:58:18 for SeqAn3 by
1.8.20