OSVR-Core
PushBack.h
Go to the documentation of this file.
1 
11 // Copyright 2015 Sensics, Inc.
12 // TypePack is part of OSVR-Core.
13 //
14 // Use, modification and distribution is subject to the
15 // Boost Software License, Version 1.0. (See accompanying
16 // file LICENSE_1_0.txt or copy at
17 // http://www.boost.org/LICENSE_1_0.txt)
18 
19 #ifndef INCLUDED_PushBack_h_GUID_86DCDCD9_8EF3_4E95_FB45_B2209B97104A
20 #define INCLUDED_PushBack_h_GUID_86DCDCD9_8EF3_4E95_FB45_B2209B97104A
21 
22 // Internal Includes
23 #include "List.h"
24 #include "ApplyList.h"
25 
26 // Library/third-party includes
27 // - none
28 
29 // Standard includes
30 // - none
31 
32 namespace osvr {
33 namespace typepack {
34  namespace detail {
35  template <typename T> struct push_back_impl {
36  template <typename... Ts> using apply = list<Ts..., T>;
37  };
38  } // namespace detail
39  template <typename List, typename T>
40  using push_back = apply_list<detail::push_back_impl<T>, List>;
41 } // namespace typepack
42 } // namespace osvr
43 
44 #endif // INCLUDED_PushBack_h_GUID_86DCDCD9_8EF3_4E95_FB45_B2209B97104A
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
A wrapper for a template parameter pack of types.
Definition: List.h:52
Definition: newuoa.h:1888
Header.
Header.
apply< detail::apply_list_< F, Args >> apply_list
Apply an alias class, exploding the list of args.
Definition: ApplyList.h:56