HIBF 1.0.0-rc.1
All Classes Namespaces Files Functions Variables Typedefs Friends Macros Modules Pages Concepts
iota_vector.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
10#pragma once
11
12#include <cassert> // for assert
13#include <concepts> // for unsigned_integral
14#include <cstddef> // for size_t
15#include <limits> // for numeric_limits
16#include <numeric> // for iota
17#include <vector> // for vector
18
19#include <hibf/platform.hpp> // for HIBF_CONSTEXPR_VECTOR
20
21namespace seqan::hibf
22{
23
29template <std::unsigned_integral value_t = size_t>
31{
32 assert(size <= std::numeric_limits<value_t>::max());
33 std::vector<value_t> result(size);
34 std::iota(result.begin(), result.end(), value_t{});
35 return result;
36}
37
38} // namespace seqan::hibf
T begin(T... args)
T end(T... args)
constexpr std::vector< value_t > iota_vector(size_t const size)
Creates a vector of size size with values from 0 to size - 1.
Definition iota_vector.hpp:30
T iota(T... args)
Provides platform and dependency checks.
#define HIBF_CONSTEXPR_VECTOR
std::vector constexpr support.
Definition platform.hpp:120