Provides an interface for common ADL (Argument Dependent Lookup) functions. More...
Functions | |
template<size_t N, typename T > | |
constexpr auto | gears::adl::get (T &&t) -> decltype(detail::adl_get< N >(std::declval< T >())) |
ADL enabled get function for tuple-like classes. More... | |
template<typename T > | |
constexpr auto | gears::adl::begin (T &&t) -> decltype(detail::adl_begin(std::declval< T >())) |
ADL-enabled begin. More... | |
template<typename T > | |
constexpr auto | gears::adl::end (T &&t) -> decltype(detail::adl_end(std::declval< T >())) |
ADL-enabled end. More... | |
template<typename T , typename U , typename R = decltype(detail::adl_swap(std::declval<T>(), std::declval<U>()))> | |
constexpr R | gears::adl::swap (T &&t, U &&u) noexcept(detail::adl_swap(std::declval< T >(), std::declval< U >())) |
ADL-enabled swap. More... | |
This module is very simple, allowing for an ADL-enabled function calls. This is useful because it allows you to write generic code that relies on certain functions without actually having to specify the using
statement for every function in every line.
Example usage:
Output:
hello 10
constexpr auto gears::adl::begin | ( | T && | t | ) | -> decltype(detail::adl_begin(std::declval<T>())) |
Allows for retrieval of std::begin
and specialisations of begin
through argument dependent lookup. Equivalent to doing the following:
t | Object with begin interface |
begin(t)
Definition at line 61 of file adl/iterator.hpp.
constexpr auto gears::adl::end | ( | T && | t | ) | -> decltype(detail::adl_end(std::declval<T>())) |
Allows for retrieval of std::end
and specialisations of end
through argument dependent lookup. Equivalent to doing the following:
t | Object with end interface |
end(t)
Definition at line 81 of file adl/iterator.hpp.
constexpr auto gears::adl::get | ( | T && | t | ) | -> decltype(detail::adl_get<N>(std::declval<T>())) |
|
noexcept |