Interface Documentation
Version: invalid
tuple_type_converter.hh
Go to the documentation of this file.
1 /*
2  @@@@@@@@ @@ @@@@@@ @@@@@@@@ @@
3  /@@///// /@@ @@////@@ @@////// /@@
4  /@@ /@@ @@@@@ @@ // /@@ /@@
5  /@@@@@@@ /@@ @@///@@/@@ /@@@@@@@@@/@@
6  /@@//// /@@/@@@@@@@/@@ ////////@@/@@
7  /@@ /@@/@@//// //@@ @@ /@@/@@
8  /@@ @@@//@@@@@@ //@@@@@@ @@@@@@@@ /@@
9  // /// ////// ////// //////// //
10 
11  Copyright (c) 2016, Triad National Security, LLC
12  All rights reserved.
13  */
14 #pragma once
15 
18 #include <tuple>
19 
20 namespace flecsi {
21 namespace util {
22 
23 template<typename T>
25  using type = T;
26 };
27 
28 template<typename... Args>
30 
31 template<typename... Args>
32 struct convert_tuple_type<std::tuple<Args...>> {
34 };
35 
36 template<typename T, typename TO, bool E>
38  using type = T;
39 };
40 
41 template<typename T, typename TO>
42 struct base_convert_tuple_type_<T, TO, true> {
43  using type = TO;
44 };
45 
46 template<typename T, typename TO>
47 struct base_convert_tuple_type_<T, TO, false> {
48  using type = T;
49 };
50 
51 template<class B, typename TO, typename... Args>
53 
54 template<class B, typename TO, typename... Args>
55 struct base_convert_tuple_type<B, TO, std::tuple<Args...>> {
56  using type = std::tuple<typename base_convert_tuple_type_<Args,
57  TO,
58  std::is_base_of<B, Args>::value>::type...>;
59 };
60 
61 } // namespace util
62 } // namespace flecsi
Definition: tuple_type_converter.hh:24
Definition: tuple_type_converter.hh:37
std::string type()
Definition: demangle.hh:44
Definition: tuple_type_converter.hh:52
Definition: tuple_type_converter.hh:29
Definition: control.hh:31