SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
pre.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 <seqan3/core/platform.hpp>
16 
17 namespace seqan3
18 {
19 
24 // ----------------------------------------------------------------------------
25 // value_type
26 // ----------------------------------------------------------------------------
27 
28 #ifdef SEQAN3_DEPRECATED_310
29 namespace detail
30 {
32 template <typename t>
33 struct value_type;
34 
36 template <typename t>
37 using value_type_t = typename value_type<t>::type;
38 } // namespace seqan3::detail
39 #endif
40 
56 template <typename t>
57 struct SEQAN3_DEPRECATED_310 value_type : detail::value_type<t>
58 {};
59 
66 template <typename t>
67 using value_type_t SEQAN3_DEPRECATED_310 = typename detail::value_type_t<t>;
68 
69 // see specialisation for iterators in core/type_traits/iterator.hpp
70 // see specialisation for ranges in core/type_traits/range.hpp
71 
72 // ----------------------------------------------------------------------------
73 // reference
74 // ----------------------------------------------------------------------------
75 
76 #ifdef SEQAN3_DEPRECATED_310
77 namespace detail
78 {
80 template <typename t>
81 struct reference;
82 
84 template <typename t>
85 using reference_t = typename reference<t>::type;
86 } // namespace seqan3::detail
87 #endif
88 
104 template <typename t>
105 struct SEQAN3_DEPRECATED_310 reference : detail::reference<t>
106 {};
107 
114 template <typename t>
115 using reference_t SEQAN3_DEPRECATED_310 = typename detail::reference_t<t>;
116 
117 // see specialisation for iterators in core/type_traits/iterator.hpp
118 // see specialisation for ranges in core/type_traits/range.hpp
119 
120 // ----------------------------------------------------------------------------
121 // rvalue_reference
122 // ----------------------------------------------------------------------------
123 
124 #ifdef SEQAN3_DEPRECATED_310
125 namespace detail
126 {
128 template <typename t>
129 struct rvalue_reference;
130 
132 template <typename t>
134 } // namespace seqan3::detail
135 #endif
136 
152 template <typename t>
153 struct SEQAN3_DEPRECATED_310 rvalue_reference : detail::rvalue_reference<t>
154 {};
155 
162 template <typename t>
163 using rvalue_reference_t SEQAN3_DEPRECATED_310 = typename detail::rvalue_reference_t<t>;
164 
165 // see specialisation for iterators in core/type_traits/iterator.hpp
166 // see specialisation for ranges in core/type_traits/range.hpp
167 
168 // ----------------------------------------------------------------------------
169 // const_reference
170 // ----------------------------------------------------------------------------
171 
172 #ifdef SEQAN3_DEPRECATED_310
173 namespace detail
174 {
176 template <typename t>
177 struct const_reference;
178 
180 template <typename t>
182 } // namespace seqan3::detail
183 #endif
184 
202 template <typename t>
203 struct SEQAN3_DEPRECATED_310 const_reference : detail::const_reference<t>
204 {};
205 
206 
213 template <typename t>
214 using const_reference_t SEQAN3_DEPRECATED_310 = typename detail::const_reference_t<t>;
215 
216 
217 // no specialisation for iterators
218 // see specialisation for ranges in core/type_traits/range.hpp
219 
220 // ----------------------------------------------------------------------------
221 // difference_type
222 // ----------------------------------------------------------------------------
223 
224 #ifdef SEQAN3_DEPRECATED_310
225 namespace detail
226 {
228 template <typename t>
229 struct difference_type;
230 
232 template <typename t>
234 } // namespace seqan3::detail
235 #endif
236 
252 template <typename t>
253 struct SEQAN3_DEPRECATED_310 difference_type : detail::difference_type<t>
254 {};
255 
256 
263 template <typename t>
264 using difference_type_t SEQAN3_DEPRECATED_310 = typename detail::difference_type_t<t>;
265 
266 
267 // see specialisation for iterators in core/type_traits/iterator.hpp
268 // see specialisation for ranges in core/type_traits/range.hpp
269 
270 // ----------------------------------------------------------------------------
271 // size_type
272 // ----------------------------------------------------------------------------
273 
274 #ifdef SEQAN3_DEPRECATED_310
275 namespace detail
276 {
278 template <typename t>
279 struct size_type;
280 
282 template <typename t>
283 using size_type_t = typename size_type<t>::type;
284 } // namespace seqan3::detail
285 #endif
286 
304 template <typename t>
305 struct SEQAN3_DEPRECATED_310 size_type : detail::size_type<t>
306 {};
307 
315 template <typename t>
316 using size_type_t SEQAN3_DEPRECATED_310 = typename detail::size_type_t<t>;
317 
318 // see specialisation for iterators in core/type_traits/iterator.hpp
319 // see specialisation for ranges in core/type_traits/range.hpp
320 
322 
323 } // namespace seqan3
seqan3::value_type_t
typename detail::value_type_t< t > value_type_t
Shortcut for seqan3::value_type (transformation_trait shortcut).
Definition: pre.hpp:67
SEQAN3_DEPRECATED_310
#define SEQAN3_DEPRECATED_310
Deprecation message for SeqAn 3.1.0 release.
Definition: platform.hpp:194
seqan3::value_type
Exposes the value_type of another type.
Definition: pre.hpp:58
seqan3::const_reference_t
typename detail::const_reference_t< t > const_reference_t
Shortcut for seqan3::const_reference (transformation_trait shortcut).
Definition: pre.hpp:214
seqan3::size_type_t
typename detail::size_type_t< t > size_type_t
Shortcut for seqan3::size_type (transformation_trait shortcut).
Definition: pre.hpp:316
seqan3::difference_type_t
typename detail::difference_type_t< t > difference_type_t
Shortcut for seqan3::difference_type (transformation_trait shortcut).
Definition: pre.hpp:264
seqan3::difference_type
Exposes the difference_type of another type.
Definition: pre.hpp:254
seqan3
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
seqan3::reference
Exposes the reference of another type.
Definition: pre.hpp:106
seqan3::size_type
Exposes the size_type of another type.
Definition: pre.hpp:306
seqan3::reference_t
typename detail::reference_t< t > reference_t
Shortcut for seqan3::reference (transformation_trait shortcut).
Definition: pre.hpp:115
seqan3::const_reference
Exposes the const_reference of another type.
Definition: pre.hpp:204
platform.hpp
Provides platform and dependency checks.
seqan3::rvalue_reference_t
typename detail::rvalue_reference_t< t > rvalue_reference_t
Shortcut for seqan3::rvalue_reference (transformation_trait shortcut).
Definition: pre.hpp:163
seqan3::rvalue_reference
Exposes the rvalue_reference of another type.
Definition: pre.hpp:154