Loading [MathJax]/extensions/tex2jax.js
Thrill
0.1
Main Page
Related Pages
Modules
+
Namespaces
Namespace List
+
Namespace Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
+
Variables
a
b
c
d
f
g
i
k
l
m
n
p
r
s
t
v
w
x
+
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
Enumerations
+
Enumerator
c
d
h
i
m
s
t
w
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
~
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerations
+
Enumerator
a
b
c
d
f
m
n
o
p
r
s
t
v
w
+
Related Functions
o
p
s
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
w
+
Functions
b
c
d
f
g
h
j
l
m
o
p
r
s
t
u
w
Variables
Typedefs
+
Macros
_
a
b
c
d
f
h
i
l
m
o
p
s
t
u
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
index_sequence.hpp
Go to the documentation of this file.
1
/*******************************************************************************
2
* tlx/meta/index_sequence.hpp
3
*
4
* Part of tlx - http://panthema.net/tlx
5
*
6
* Copyright (C) 2016-2017 Timo Bingmann <tb@panthema.net>
7
*
8
* All rights reserved. Published under the Boost Software License, Version 1.0
9
******************************************************************************/
10
11
#ifndef TLX_META_INDEX_SEQUENCE_HEADER
12
#define TLX_META_INDEX_SEQUENCE_HEADER
13
14
#include <cstddef>
15
16
namespace
tlx
{
17
18
//! \addtogroup tlx_meta
19
//! \{
20
21
// Compile-time integer sequences, an implementation of std::index_sequence and
22
// std::make_index_sequence, as these are not available in many current
23
// libraries (MS Visual C++).
24
template
<
size_t
... Indexes>
25
struct
index_sequence
{
26
static
size_t
size
() {
return
sizeof
... (Indexes); }
27
};
28
29
namespace
meta_detail {
30
31
template
<
size_t
CurrentIndex,
size_t
... Indexes>
32
struct
make_index_sequence_helper
;
33
34
template
<
size_t
... Indexes>
35
struct
make_index_sequence_helper
<0, Indexes...> {
36
using
type
=
index_sequence
<Indexes...>;
37
};
38
39
template
<
size_t
CurrentIndex,
size_t
... Indexes>
40
struct
make_index_sequence_helper
{
41
using
type
=
typename
make_index_sequence_helper
<
42
CurrentIndex - 1, CurrentIndex - 1, Indexes...>
::type
;
43
};
44
45
}
// namespace meta_detail
46
47
template
<
size_t
Size>
48
struct
make_index_sequence
49
:
public
meta_detail::make_index_sequence_helper
<Size>::type { };
50
51
//! \}
52
53
}
// namespace tlx
54
55
#endif // !TLX_META_INDEX_SEQUENCE_HEADER
56
57
/******************************************************************************/
tlx::index_sequence::size
static size_t size()
Definition:
index_sequence.hpp:26
tlx::make_index_sequence
Definition:
index_sequence.hpp:48
tlx
Definition:
exclusive_scan.hpp:17
tlx::meta_detail::make_index_sequence_helper
Definition:
index_sequence.hpp:32
tlx::meta_detail::make_index_sequence_helper::type
typename make_index_sequence_helper< CurrentIndex - 1, CurrentIndex - 1, Indexes... >::type type
Definition:
index_sequence.hpp:42
tlx::index_sequence
Definition:
index_sequence.hpp:25
extlib
tlx
tlx
meta
index_sequence.hpp
Generated on Mon Apr 6 2020 09:17:55 for Thrill by
1.8.13