19 #ifndef INCLUDED_FindFirst_h_GUID_FA5855C9_2243_4DA5_B9B7_ED766E8348FE
20 #define INCLUDED_FindFirst_h_GUID_FA5855C9_2243_4DA5_B9B7_ED766E8348FE
36 template <
typename Needle, std::size_t i,
typename... Ts>
37 struct find_first_impl;
39 template <
typename Needle,
typename... Ts>
40 struct find_first_impl<Needle, 0, list<Ts...>>
41 : find_first_impl<Needle, 0, Ts...> {};
43 template <
typename Needle, std::size_t i,
typename... Ts>
44 struct find_first_impl<Needle, i, Needle, Ts...> {
45 using type = size_t_<i>;
48 template <
typename Needle, std::size_t i,
typename Head,
typename... Ts>
49 struct find_first_impl<Needle, i, Head, Ts...> {
50 using type =
t_<find_first_impl<Needle, i + 1, Ts...>>;
53 template <
typename Needle, std::
size_t i>
54 struct find_first_impl<Needle, i> {};
60 template <
typename List,
typename Needle>
66 #endif // INCLUDED_FindFirst_h_GUID_FA5855C9_2243_4DA5_B9B7_ED766E8348FE
The main namespace for all C++ elements of the framework, internal and external.
t_< detail::find_first_impl< Needle, 0, List >> find_first
Returns the zero-based index of the first instance of Needle in List. Will fail to compile if not fou...
typename T::type t_
A convenience alias template to extract the nested type within the supplied T.