OSVR-Core
Quote.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_Quote_h_GUID_0665E3E5_DDFC_489F_AC33_6AF40B7454A6
29 #define INCLUDED_Quote_h_GUID_0665E3E5_DDFC_489F_AC33_6AF40B7454A6
30 
31 // Internal Includes
32 #include "T.h"
33 #include "Defer.h"
34 
35 // Library/third-party includes
36 // - none
37 
38 // Standard includes
39 // - none
40 namespace osvr {
41 namespace typepack {
42 
46  template <template <typename...> class C> struct quote {
47  // Indirection through defer here needed to avoid Core issue 1430
48  // http://open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1430
49  template <typename... Ts> using apply = t_<defer<C, Ts...>>;
50  };
51 
52 } // namespace typepack
53 } // namespace osvr
54 #endif // INCLUDED_Quote_h_GUID_0665E3E5_DDFC_489F_AC33_6AF40B7454A6
Turn a class template or alias template C into a Alias Class.
Definition: Quote.h:46
A wrapper that defers the instantiation of a template C with type parameters Ts in a lambda or let ex...
Definition: Defer.h:74
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
Header.
typename T::type t_
A convenience alias template to extract the nested type within the supplied T.
Definition: T.h:52
Header.