alpaka
Abstraction Library for Parallel Kernel Acceleration
Concatenate.hpp
Go to the documentation of this file.
1 /* Copyright 2022 Benjamin Worpitz, Bernhard Manfred Gruber
2  * SPDX-License-Identifier: MPL-2.0
3  */
4 
5 #pragma once
6 
7 namespace alpaka::meta
8 {
9  namespace detail
10  {
11  template<typename... T>
13 
14  template<typename T>
15  struct ConcatenateImpl<T>
16  {
17  using type = T;
18  };
19 
20  template<template<typename...> class TList, typename... As, typename... Bs, typename... TRest>
21  struct ConcatenateImpl<TList<As...>, TList<Bs...>, TRest...>
22  {
23  using type = typename ConcatenateImpl<TList<As..., Bs...>, TRest...>::type;
24  };
25  } // namespace detail
26 
27  template<typename... T>
28  using Concatenate = typename detail::ConcatenateImpl<T...>::type;
29 } // namespace alpaka::meta
typename detail::ConcatenateImpl< T... >::type Concatenate
Definition: Concatenate.hpp:28
typename ConcatenateImpl< TList< As..., Bs... >, TRest... >::type type
Definition: Concatenate.hpp:23