SeqAn3
pre.hpp
Go to the documentation of this file.
1 // ============================================================================
2 // SeqAn - The Library for Sequence Analysis
3 // ============================================================================
4 //
5 // Copyright (c) 2006-2018, Knut Reinert & Freie Universitaet Berlin
6 // Copyright (c) 2016-2018, Knut Reinert & MPI Molekulare Genetik
7 // All rights reserved.
8 //
9 // Redistribution and use in source and binary forms, with or without
10 // modification, are permitted provided that the following conditions are met:
11 //
12 // * Redistributions of source code must retain the above copyright
13 // notice, this list of conditions and the following disclaimer.
14 // * Redistributions in binary form must reproduce the above copyright
15 // notice, this list of conditions and the following disclaimer in the
16 // documentation and/or other materials provided with the distribution.
17 // * Neither the name of Knut Reinert or the FU Berlin nor the names of
18 // its contributors may be used to endorse or promote products derived
19 // from this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
25 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
31 // DAMAGE.
32 //
33 // ============================================================================
34 
40 #pragma once
41 
42 #include <seqan3/core/platform.hpp>
43 
44 namespace seqan3
45 {
46 
51 // ----------------------------------------------------------------------------
52 // value_type
53 // ----------------------------------------------------------------------------
54 
65 template <typename t>
66 struct value_type;
67 
71 template <typename t>
73 
74 // see specialisation for iterators in core/metafunction/iterator.hpp
75 // see specialisation for ranges in core/metafunction/range.hpp
76 
77 // ----------------------------------------------------------------------------
78 // reference
79 // ----------------------------------------------------------------------------
80 
91 template <typename t>
92 struct reference;
93 
97 template <typename t>
99 
100 // see specialisation for iterators in core/metafunction/iterator.hpp
101 // see specialisation for ranges in core/metafunction/range.hpp
102 
103 // ----------------------------------------------------------------------------
104 // rvalue_reference
105 // ----------------------------------------------------------------------------
106 
117 template <typename t>
119 
123 template <typename t>
125 
126 // see specialisation for iterators in core/metafunction/iterator.hpp
127 // see specialisation for ranges in core/metafunction/range.hpp
128 
129 // ----------------------------------------------------------------------------
130 // const_reference
131 // ----------------------------------------------------------------------------
132 
145 template <typename t>
147 
151 template <typename t>
153 
154 // no specialisation for iterators
155 // see specialisation for ranges in core/metafunction/range.hpp
156 
157 // ----------------------------------------------------------------------------
158 // difference_type
159 // ----------------------------------------------------------------------------
160 
171 template <typename t>
173 
177 template <typename t>
179 
180 // see specialisation for iterators in core/metafunction/iterator.hpp
181 // see specialisation for ranges in core/metafunction/range.hpp
182 
183 // ----------------------------------------------------------------------------
184 // size_type
185 // ----------------------------------------------------------------------------
186 
197 template <typename t>
198 struct size_type;
199 
203 template <typename t>
205 
206 // see specialisation for iterators in core/metafunction/iterator.hpp
207 // see specialisation for ranges in core/metafunction/range.hpp
208 
210 
211 } // namespace seqan3
Contains platform and dependency checks.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:58
typename rvalue_reference< t >::type rvalue_reference_t
Type metafunction shortcut for seqan3::rvalue_reference.
Definition: pre.hpp:124
typename size_type< t >::type size_type_t
Type metafunction shortcut for seqan3::size_type.
Definition: pre.hpp:204
typename const_reference< t >::type const_reference_t
Type metafunction shortcut for seqan3::const_reference.
Definition: pre.hpp:152
Type metafunction that returns the difference_type of another type [metafunction declaration].
Definition: pre.hpp:172
Type metafunction that returns the size_type of another type [metafunction declaration].
Definition: pre.hpp:198
typename difference_type< t >::type difference_type_t
Type metafunction shortcut for seqan3::difference_type.
Definition: pre.hpp:178
Type metafunction that returns the const_reference of another type [metafunction declaration].
Definition: pre.hpp:146
Type metafunction that returns the rvalue_reference of another type [metafunction declaration]...
Definition: pre.hpp:118
typename reference< t >::type reference_t
Type metafunction shortcut for seqan3::reference.
Definition: pre.hpp:98
Type metafunction that returns the reference of another type [metafunction declaration].
Definition: pre.hpp:92
typename value_type< t >::type value_type_t
Type metafunction shortcut for seqan3::value_type.
Definition: pre.hpp:72
Type metafunction that returns the value_type of another type [metafunction declaration].
Definition: pre.hpp:66