TuringSim
C++ framework to simulate abstract computing models
include
utils
arrayBuilder.h
1
#pragma once
2
3
#include <array>
4
8
namespace
TuringSim::Utils
{
9
15
template
<
typename
T,
size_t
N>
16
class
ArrayBuilder
{
17
private
:
18
template
<
typename
F,
size_t
... Is>
19
constexpr
static
std::array<T, N> _fromFunction(F f, std::index_sequence<Is...>) {
20
static_assert(N ==
sizeof
...(Is));
21
return
{{f(Is)...}};
22
}
23
24
public
:
30
template
<
typename
F>
31
constexpr
static
std::array<T, N>
fromFunction
(F f) {
32
return
ArrayBuilder<T, N>::_fromFunction<>
(f, std::make_index_sequence<N>());
33
}
34
};
35
}
TuringSim::Utils::ArrayBuilder
Build an array at compile time by applying a function.
Definition:
arrayBuilder.h:16
TuringSim::Utils
The namespace for basic function, not specific to TuringSim.
TuringSim::Utils::ArrayBuilder::fromFunction
constexpr static std::array< T, N > fromFunction(F f)
Builds an array of size N by filling it with f(0), ..., f(N-1).
Definition:
arrayBuilder.h:31
Generated on Wed Dec 2 2020 01:43:36 for TuringSim by
1.8.20