OSVR-Core
inc
osvr
TypePack
Compose.h
Go to the documentation of this file.
1
14
// Copyright 2015 Sensics, Inc.
15
// TypePack is part of OSVR-Core.
16
//
17
// Incorporates code from "meta":
18
// Copyright Eric Niebler 2014-2015
19
//
20
// Use, modification and distribution is subject to the
21
// Boost Software License, Version 1.0. (See accompanying
22
// file LICENSE_1_0.txt or copy at
23
// http://www.boost.org/LICENSE_1_0.txt)
24
//
25
// Project home: https://github.com/ericniebler/meta
26
//
27
28
#ifndef INCLUDED_Compose_h_GUID_D6907ED1_0D1C_4FAE_C5FB_3C1845DA7AA4
29
#define INCLUDED_Compose_h_GUID_D6907ED1_0D1C_4FAE_C5FB_3C1845DA7AA4
30
31
// Internal Includes
32
#include "
Apply.h
"
33
34
// Library/third-party includes
35
// - none
36
37
// Standard includes
38
// - none
39
40
namespace
osvr
{
41
namespace
typepack {
42
44
template
<
typename
... Fs>
struct
compose
{};
45
46
template
<
typename
F0>
struct
compose
<F0> {
47
template
<
typename
... Ts>
using
apply =
typepack::apply
<F0, Ts...>;
48
};
49
50
template
<
typename
F0,
typename
... Fs>
struct
compose
<F0, Fs...> {
51
template
<
typename
... Ts>
52
using
apply =
53
typepack::apply
<F0,
typepack::apply
<
compose
<Fs...>, Ts...>>;
54
};
55
}
// namespace typepack
56
}
// namespace osvr
57
#endif // INCLUDED_Compose_h_GUID_D6907ED1_0D1C_4FAE_C5FB_3C1845DA7AA4
Apply.h
Header.
osvr
The main namespace for all C++ elements of the framework, internal and external.
Definition:
namespace_osvr.dox:3
osvr::typepack::apply
typename F::template apply< Args... > apply
Apply an alias class.
Definition:
Apply.h:44
osvr::typepack::compose
Compose the Alias Classes Fs in the parameter pack Ts.
Definition:
Compose.h:44
Generated by
1.8.12