OSVR-Core
ApplyList.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_ApplyList_h_GUID_9B48A805_89F9_48A8_3AC8_1C477B7328C7
29 #define INCLUDED_ApplyList_h_GUID_9B48A805_89F9_48A8_3AC8_1C477B7328C7
30 
31 // Internal Includes
32 #include "List.h"
33 #include "T.h"
34 #include "Apply.h"
35 
36 // Library/third-party includes
37 // - none
38 
39 // Standard includes
40 // - none
41 
42 namespace osvr {
43 namespace typepack {
44  namespace detail {
46  template <typename F, typename List> struct apply_list_;
47  template <typename F, typename... Args>
48  struct apply_list_<F, list<Args...>> {
49  // the simpler solution doesn't build with MSVC 2013
50  template <typename...> using apply = typepack::apply<F, Args...>;
51  };
52  } // namespace detail
53 
55  template <typename F, typename Args>
57 } // namespace typepack
58 } // namespace osvr
59 
60 #endif // INCLUDED_ApplyList_h_GUID_9B48A805_89F9_48A8_3AC8_1C477B7328C7
Header.
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
typename F::template apply< Args... > apply
Apply an alias class.
Definition: Apply.h:44
Definition: newuoa.h:1888
Header.
Header.
General/dummy case.
Definition: ApplyList.h:46
apply< detail::apply_list_< F, Args >> apply_list
Apply an alias class, exploding the list of args.
Definition: ApplyList.h:56