SeqAn3
3.0.2
The Modern C++ library for sequence analysis.
int_types.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
8
#pragma once
9
10
#include <
seqan3/std/concepts
>
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
28
template
<u
int
64_t value>
29
using
min_viable_uint_t =
std::conditional_t
<value <= 1ull, bool,
30
std::conditional_t
<value <= 255ull, uint8_t,
31
std::conditional_t
<value <= 65535ull, uint16_t,
32
std::conditional_t<value <= 4294967295ull, uint32_t, uint64_t>
>>>;
33
36
template
<u
int
64_t value>
37
constexpr
auto
min_viable_uint_v =
static_cast<
min_viable_uint_t<value>
>
(value);
38
39
// ------------------------------------------------------------------
40
// size_in_values_v
41
// ------------------------------------------------------------------
42
44
template
<std::
int
egral
int
_t>
45
constexpr
size_t
size_in_values_v =
static_cast<
size_t
>
(
std::numeric_limits<int_t>::max
()) -
46
std::numeric_limits<int_t>::lowest
() + 1;
47
48
}
// namespace seqan3::detail
concepts
The Concepts library.
platform.hpp
Provides platform and dependency checks.
std::conditional_t
std::numeric_limits::max
T max(T... args)
std::numeric_limits
seqan3
core
detail
int_types.hpp
Generated on Thu Oct 1 2020 16:41:12 for SeqAn3 by
1.8.18