OSVR-Core
PushFront.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_PushFront_h_GUID_71A57FB9_64D6_4AA1_E968_0F91E951C7B4
20 #define INCLUDED_PushFront_h_GUID_71A57FB9_64D6_4AA1_E968_0F91E951C7B4
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_front_impl {
36  template <typename... Ts> using apply = list<T, Ts...>;
37  };
38  }
39 
40  template <typename List, typename T>
41  using push_front = apply_list<detail::push_front_impl<T>, List>;
42 } // namespace typepack
43 } // namespace osvr
44 #endif // INCLUDED_PushFront_h_GUID_71A57FB9_64D6_4AA1_E968_0F91E951C7B4
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
Definition: PushFront.h:35
Header.
Header.
apply< detail::apply_list_< F, Args >> apply_list
Apply an alias class, exploding the list of args.
Definition: ApplyList.h:56