28 #ifndef INCLUDED_Concat_h_GUID_84D1F940_2859_4581_8F5D_16651CB90A21 29 #define INCLUDED_Concat_h_GUID_84D1F940_2859_4581_8F5D_16651CB90A21 45 template <
typename... Lists>
struct concat_ {};
47 template <>
struct concat_<> {
using type = list<>; };
49 template <
typename... List1>
struct concat_<list<List1...>> {
50 using type = list<List1...>;
53 template <
typename... List1,
typename... List2>
54 struct concat_<list<List1...>, list<List2...>> {
55 using type = list<List1..., List2...>;
58 template <
typename... List1,
typename... List2,
typename... List3>
59 struct concat_<list<List1...>, list<List2...>, list<List3...>> {
60 using type = list<List1..., List2..., List3...>;
63 template <
typename... List1,
typename... List2,
typename... List3,
65 struct concat_<list<List1...>, list<List2...>, list<List3...>, Rest...>
66 : concat_<list<List1..., List2..., List3...>, Rest...> {};
75 template <
typename... Lists>
using concat =
t_<detail::concat_<Lists...>>;
79 #endif // INCLUDED_Concat_h_GUID_84D1F940_2859_4581_8F5D_16651CB90A21 The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
Definition: newuoa.h:1888
t_< detail::concat_< Lists... >> concat
Concatenates several lists into a single list.
Definition: Concat.h:75
typename T::type t_
A convenience alias template to extract the nested type within the supplied T.
Definition: T.h:52