SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
pre.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2021, 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 #ifdef SEQAN3_DEPRECATED_310
18 
19 namespace seqan3
20 {
21 
26 // ----------------------------------------------------------------------------
27 // value_type
28 // ----------------------------------------------------------------------------
29 
30 namespace detail
31 {
33 template <typename t>
34 struct value_type;
35 
37 template <typename t>
38 using value_type_t = typename value_type<t>::type;
39 } // namespace seqan3::detail
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 namespace detail
77 {
79 template <typename t>
80 struct reference;
81 
83 template <typename t>
84 using reference_t = typename reference<t>::type;
85 } // namespace seqan3::detail
86 
102 template <typename t>
103 struct SEQAN3_DEPRECATED_310 reference : detail::reference<t>
104 {};
105 
112 template <typename t>
113 using reference_t SEQAN3_DEPRECATED_310 = typename detail::reference_t<t>;
114 
115 // see specialisation for iterators in core/type_traits/iterator.hpp
116 // see specialisation for ranges in core/type_traits/range.hpp
117 
118 // ----------------------------------------------------------------------------
119 // rvalue_reference
120 // ----------------------------------------------------------------------------
121 
122 namespace detail
123 {
125 template <typename t>
126 struct rvalue_reference;
127 
129 template <typename t>
131 } // namespace seqan3::detail
132 
148 template <typename t>
149 struct SEQAN3_DEPRECATED_310 rvalue_reference : detail::rvalue_reference<t>
150 {};
151 
158 template <typename t>
159 using rvalue_reference_t SEQAN3_DEPRECATED_310 = typename detail::rvalue_reference_t<t>;
160 
161 // see specialisation for iterators in core/type_traits/iterator.hpp
162 // see specialisation for ranges in core/type_traits/range.hpp
163 
164 // ----------------------------------------------------------------------------
165 // const_reference
166 // ----------------------------------------------------------------------------
167 
168 namespace detail
169 {
171 template <typename t>
172 struct const_reference;
173 
175 template <typename t>
177 } // namespace seqan3::detail
178 
196 template <typename t>
197 struct SEQAN3_DEPRECATED_310 const_reference : detail::const_reference<t>
198 {};
199 
200 
207 template <typename t>
208 using const_reference_t SEQAN3_DEPRECATED_310 = typename detail::const_reference_t<t>;
209 
210 
211 // no specialisation for iterators
212 // see specialisation for ranges in core/type_traits/range.hpp
213 
214 // ----------------------------------------------------------------------------
215 // difference_type
216 // ----------------------------------------------------------------------------
217 
218 namespace detail
219 {
221 template <typename t>
222 struct difference_type;
223 
225 template <typename t>
227 } // namespace seqan3::detail
228 
244 template <typename t>
245 struct SEQAN3_DEPRECATED_310 difference_type : detail::difference_type<t>
246 {};
247 
248 
255 template <typename t>
256 using difference_type_t SEQAN3_DEPRECATED_310 = typename detail::difference_type_t<t>;
257 
258 
259 // see specialisation for iterators in core/type_traits/iterator.hpp
260 // see specialisation for ranges in core/type_traits/range.hpp
261 
262 // ----------------------------------------------------------------------------
263 // size_type
264 // ----------------------------------------------------------------------------
265 
266 namespace detail
267 {
269 template <typename t>
270 struct size_type;
271 
273 template <typename t>
274 using size_type_t = typename size_type<t>::type;
275 } // namespace seqan3::detail
276 
294 template <typename t>
295 struct SEQAN3_DEPRECATED_310 size_type : detail::size_type<t>
296 {};
297 
305 template <typename t>
306 using size_type_t SEQAN3_DEPRECATED_310 = typename detail::size_type_t<t>;
307 
308 // see specialisation for iterators in core/type_traits/iterator.hpp
309 // see specialisation for ranges in core/type_traits/range.hpp
310 
312 
313 } // namespace seqan3
314 
315 #endif // SEQAN3_DEPRECATED_310
typename detail::value_type_t< t > value_type_t
Shortcut for seqan3::value_type (transformation_trait shortcut).
Definition: pre.hpp:67
typename detail::reference_t< t > reference_t
Shortcut for seqan3::reference (transformation_trait shortcut).
Definition: pre.hpp:113
typename detail::size_type_t< t > size_type_t
Shortcut for seqan3::size_type (transformation_trait shortcut).
Definition: pre.hpp:306
typename detail::rvalue_reference_t< t > rvalue_reference_t
Shortcut for seqan3::rvalue_reference (transformation_trait shortcut).
Definition: pre.hpp:159
typename detail::difference_type_t< t > difference_type_t
Shortcut for seqan3::difference_type (transformation_trait shortcut).
Definition: pre.hpp:256
typename detail::const_reference_t< t > const_reference_t
Shortcut for seqan3::const_reference (transformation_trait shortcut).
Definition: pre.hpp:208
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides platform and dependency checks.
#define SEQAN3_DEPRECATED_310
Deprecation message for SeqAn 3.1.0 release.
Definition: platform.hpp:203
Exposes the const_reference of another type.
Definition: pre.hpp:198
Exposes the difference_type of another type.
Definition: pre.hpp:246
Exposes the reference of another type.
Definition: pre.hpp:104
Exposes the rvalue_reference of another type.
Definition: pre.hpp:150
Exposes the size_type of another type.
Definition: pre.hpp:296
Exposes the value_type of another type.
Definition: pre.hpp:58