8 #include <boost/mp11.hpp>
13 using namespace boost::mp11;
18 template<
template<
typename...>
typename L,
typename... T,
typename F>
22 using A =
int[
sizeof...(T)];
23 (void) A{((void) f(T{}), 0)...};
26 template<
typename FromList,
template<
auto...>
class ToList>
29 template<
template<
class...>
class FromList,
typename... Values,
template<
auto...>
class ToList>
32 using type = ToList<Values::value...>;
35 template<
typename FromList,
template<
auto...>
class ToList>
38 template<
typename E,
typename... Args>
43 template<std::size_t I,
typename... Args>
46 using type = mp_at_c<mp_list<Args...>, I>;
49 template<
template<
typename...>
typename E,
typename... Ts,
typename... Args>
57 template<
typename L,
typename F>
65 template<
typename Expression,
typename... Args>
#define LLAMA_FN_HOST_ACC_INLINE
typename mp_unwrap_values_into_impl< FromList, ToList >::type mp_unwrap_values_into
constexpr void mp_for_each_inline_impl(L< T... >, F &&f)
typename internal::ReplacePlaceholdersImpl< Expression, Args... >::type ReplacePlaceholders
constexpr void mp_for_each_inline(F &&f)
Like boost::mp11::mp_for_each, but marked with LLAMA_FN_HOST_ACC_INLINE.
E< typename ReplacePlaceholdersImpl< Ts, Args... >::type... > type
mp_at_c< mp_list< Args... >, I > type
ToList< Values::value... > type