1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| /*
| Copyright 2017 Glen Joseph Fernandes
| (glenjofe@gmail.com)
|
| Distributed under the Boost Software License,
| Version 1.0. (See accompanying file LICENSE_1_0.txt
| or copy at http://www.boost.org/LICENSE_1_0.txt)
| */
|
| #ifndef BOOST_TT_MAKE_VOID_HPP_INCLUDED
| #define BOOST_TT_MAKE_VOID_HPP_INCLUDED
|
| #include <boost/config.hpp>
|
| namespace boost {
|
| #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
| template<class...>
| struct make_void {
| typedef void type;
| };
|
| #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
| template<class... Ts>
| using void_t = typename make_void<Ts...>::type;
| #endif
|
| #else /* BOOST_NO_CXX11_VARIADIC_TEMPLATES */
|
| template<class = void,
| class = void,
| class = void,
| class = void,
| class = void>
| struct make_void {
| typedef void type;
| };
|
| #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
| template<class A = void,
| class B = void,
| class C = void,
| class D = void,
| class E = void>
| using void_t = typename make_void<A, B, C, D, E>::type;
| #endif
|
| #endif
|
| } /* boost */
|
| #endif
|
|