SeqAn3
3.1.0
The Modern C++ library for sequence analysis.
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
integer_traits.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
8
#pragma once
9
10
#include <
limits
>
11
#include <type_traits>
12
13
#include <
seqan3/core/platform.hpp
>
14
20
namespace
seqan3::detail
21
{
22
23
// ------------------------------------------------------------------
24
// min_viable_uint_t
25
// ------------------------------------------------------------------
26
29
template
<u
int
64_t value>
30
using
min_viable_uint_t =
std::conditional_t
<value <= 1ull, bool,
31
std::conditional_t
<value <= 255ull, uint8_t,
32
std::conditional_t
<value <= 65535ull, uint16_t,
33
std::conditional_t<value <= 4294967295ull, uint32_t, uint64_t>
>>>;
34
38
template
<u
int
64_t value>
39
constexpr
auto
min_viable_uint_v =
static_cast<
min_viable_uint_t<value>
>
(value);
40
41
// ------------------------------------------------------------------
42
// size_in_values_v
43
// ------------------------------------------------------------------
44
47
template
<
typename
int
_t>
49
requires
std::is_integral_v<int_t>
51
constexpr
size_t
size_in_values_v =
static_cast<
size_t
>
(
std::numeric_limits<int_t>::max
()) -
52
std::numeric_limits<int_t>::lowest
() + 1;
53
54
}
// namespace seqan3::detail
std::conditional_t
limits
std::numeric_limits::max
T max(T... args)
std::numeric_limits
platform.hpp
Provides platform and dependency checks.
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
utility
detail
integer_traits.hpp
Generated on Thu Nov 11 2021 09:23:15 for SeqAn3 by
1.9.2