MPL11
 All Classes Namespaces Files Typedefs Macros Groups Pages
overload_resolution.hpp
Go to the documentation of this file.
1 
12 #ifndef BOOST_MPL11_DETAIL_AT_INDEX_OVERLOAD_RESOLUTION_HPP
13 #define BOOST_MPL11_DETAIL_AT_INDEX_OVERLOAD_RESOLUTION_HPP
14 
17 
18 
19 namespace boost { namespace mpl11 { namespace detail { namespace at_index {
20  template <typename ignore>
21  struct overload_impl;
22 
23  template <std_size_t ...ignore>
24  struct overload_impl<std_index_sequence<ignore...>> {
25  template <typename nth>
26  static nth apply(decltype(ignore, (void*)nullptr)..., nth*, ...);
27  };
28 
41  template <std_size_t index, typename ...xs>
42  using overload_resolution = decltype(
43  overload_impl<typename make_std_index_sequence<index>::type>::apply(
44  (xs*)nullptr...
45  )
46  );
47 }}}} // end namespace boost::mpl11::detail::at_index
48 
49 #endif // !BOOST_MPL11_DETAIL_AT_INDEX_OVERLOAD_RESOLUTION_HPP
Defines boost::mpl11::detail::std_size_t.
Defines boost::mpl11::detail::std_index_sequence.
Invokes a metafunction class with the given arguments.
Definition: functional.hpp:39