Commit 3c654a7a authored by Davis King's avatar Davis King
Browse files

cleanup formatting a little

parent 2ed6ae1b
// Copyright (C) 2016 Davis E. King (davis@dlib.net)
// Copyright (C) 2021 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_INVOKE_Hh_
#define DLIB_INVOKE_Hh_
......@@ -9,8 +9,9 @@
namespace dlib
{
// ----------------------------------------------------------------------------------------
namespace detail {
// ----------------------------------------------------------------------------------------
namespace detail
{
template< typename T >
struct is_reference_wrapper : std::false_type {};
template< typename U >
......@@ -148,8 +149,10 @@ namespace dlib
{
return std::forward<F>( f )( std::forward<Args>( args )...);
}
}
} // end namespace detail
// ----------------------------------------------------------------------------------------
template< typename F, typename... Args>
constexpr auto invoke(F && f, Args &&... args)
/*!
......@@ -163,7 +166,7 @@ namespace dlib
return detail::INVOKE(std::forward<F>( f ), std::forward<Args>( args )...);
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
namespace detail
{
......@@ -179,7 +182,9 @@ namespace dlib
static constexpr bool value = true;
using type = decltype( dlib::invoke(std::declval<F>(), std::declval<Args>()...) );
};
}
} // end namespace detail
// ----------------------------------------------------------------------------------------
template< typename F, typename... Args >
struct invoke_result : detail::invoke_traits< void, F, Args...> {};
......@@ -197,7 +202,7 @@ namespace dlib
- works with C++11 onwards
!*/
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
template< typename F, typename... Args >
struct is_invocable : std::integral_constant<bool, detail::invoke_traits< void, F, Args...>::value> {};
......@@ -207,7 +212,7 @@ namespace dlib
- works with C++11 onwards
!*/
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
template <typename R, typename F, typename... Args>
struct is_invocable_r : std::integral_constant<bool, dlib::is_invocable<F, Args...>::value &&
......@@ -218,7 +223,7 @@ namespace dlib
- works with C++11 onwards
!*/
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
template< typename R, typename F, typename... Args>
constexpr typename std::enable_if<dlib::is_invocable_r<R, F, Args...>::value, R>::type
......@@ -233,7 +238,7 @@ namespace dlib
return dlib::invoke(std::forward<F>( f ), std::forward<Args>( args )...);
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
namespace detail
{
......@@ -247,7 +252,9 @@ namespace dlib
return dlib::invoke(std::forward<F>(fn),
std::get<I>(std::forward<Tuple>(tpl))...);
}
}
} // end namespace detail
// ----------------------------------------------------------------------------------------
template<typename F, typename Tuple>
constexpr auto apply(F&& fn, Tuple&& tpl)
......@@ -268,7 +275,7 @@ namespace dlib
make_index_sequence<std::tuple_size<typename std::remove_reference<Tuple>::type >::value>{});
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
namespace detail
{
......@@ -277,7 +284,9 @@ namespace dlib
{
return T(std::get<I>(std::forward<Tuple>(t))...);
}
}
} // end namespace detail
// ----------------------------------------------------------------------------------------
template <class T, class Tuple>
constexpr T make_from_tuple( Tuple&& t )
......@@ -291,7 +300,8 @@ namespace dlib
make_index_sequence<std::tuple_size<typename std::remove_reference<Tuple>::type >::value>{});
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
}
#endif //DLIB_INVOKE_Hh_
\ No newline at end of file
#endif //DLIB_INVOKE_Hh_
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment