Meta  0.1
A tiny metaprogramming library
meta_fwd.hpp
Go to the documentation of this file.
1 //
3 // Meta library
4 //
5 // Copyright Eric Niebler 2014-2015
6 //
7 // Use, modification and distribution is subject to the
8 // Boost Software License, Version 1.0. (See accompanying
9 // file LICENSE_1_0.txt or copy at
10 // http://www.boost.org/LICENSE_1_0.txt)
11 //
12 // Project home: https://github.com/ericniebler/meta
13 //
14 
15 #ifndef META_FWD_HPP
16 #define META_FWD_HPP
17 
18 #include <utility>
19 
20 #ifndef META_DISABLE_DEPRECATED_WARNINGS
21 #ifdef __cpp_attribute_deprecated
22 #define META_DEPRECATED(MSG) [[deprecated(MSG)]]
23 #else
24 #if defined(__clang__) || defined(__GNUC__)
25 #define META_DEPRECATED(MSG) __attribute__((deprecated(MSG)))
26 #elif defined(_MSC_VER)
27 #define META_DEPRECATED(MSG) __declspec(deprecated(MSG))
28 #else
29 #define META_DEPRECATED(MSG)
30 #endif
31 #endif
32 #else
33 #define META_DEPRECATED(MSG)
34 #endif
35 
36 namespace meta
37 {
38  inline namespace v1
39  {
40 #ifdef __cpp_lib_integer_sequence
41  using std::integer_sequence;
42 #else
43  template <typename T, T...>
44  struct integer_sequence;
45 #endif
46 
47  template <typename... Ts>
48  struct list;
49 
50  template <typename T>
51  struct id;
52 
53  template <template <typename...> class>
54  struct quote;
55 
56  template <typename T, template <T...> class F>
57  struct quote_i;
58 
59  template <typename... Fs>
60  struct compose;
61 
62  template <template <typename...> class C, typename... Ts>
63  struct defer;
64 
65  template <typename T, template <T...> class C, T... Is>
66  struct defer_i;
67 
68  namespace extension
69  {
70  template <typename F, typename List>
71  struct apply;
72  }
73 
74  } // inline namespace v1
75 } // namespace meta
76 
77 #endif
defer< compose, Fns... > compose
Definition: meta.hpp:633
Tiny metaprogramming library.
Definition: meta.hpp:114
_t< extension::apply< C, List >> apply
Applies the Callable C using the types in the type list List as arguments.
Definition: meta.hpp:757
defer< id, T > id
Definition: meta.hpp:437