LLVM 22.0.0git
ADL.h File Reference
#include <type_traits>
#include <iterator>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::adl_detail
namespace  llvm::detail
 These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of, llvm::none_of, etc.

Typedefs

template<typename RangeT>
using llvm::detail::IterOfRange = decltype(adl_begin(std::declval<RangeT &>()))
template<typename RangeT>
using llvm::detail::ValueOfRange

Functions

template<typename RangeT>
constexpr auto llvm::adl_detail::begin_impl (RangeT &&range) -> decltype(begin(std::forward< RangeT >(range)))
template<typename RangeT>
constexpr auto llvm::adl_detail::end_impl (RangeT &&range) -> decltype(end(std::forward< RangeT >(range)))
template<typename RangeT>
constexpr auto llvm::adl_detail::rbegin_impl (RangeT &&range) -> decltype(rbegin(std::forward< RangeT >(range)))
template<typename RangeT>
constexpr auto llvm::adl_detail::rend_impl (RangeT &&range) -> decltype(rend(std::forward< RangeT >(range)))
template<typename T>
constexpr void llvm::adl_detail::swap_impl (T &&lhs, T &&rhs) noexcept(noexcept(swap(std::declval< T >(), std::declval< T >())))
template<typename RangeT>
constexpr auto llvm::adl_detail::size_impl (RangeT &&range) -> decltype(size(std::forward< RangeT >(range)))
template<typename RangeT>
constexpr auto llvm::adl_begin (RangeT &&range) -> decltype(adl_detail::begin_impl(std::forward< RangeT >(range)))
 Returns the begin iterator to range using std::begin and function found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto llvm::adl_end (RangeT &&range) -> decltype(adl_detail::end_impl(std::forward< RangeT >(range)))
 Returns the end iterator to range using std::end and functions found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto llvm::adl_rbegin (RangeT &&range) -> decltype(adl_detail::rbegin_impl(std::forward< RangeT >(range)))
 Returns the reverse-begin iterator to range using std::rbegin and function found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto llvm::adl_rend (RangeT &&range) -> decltype(adl_detail::rend_impl(std::forward< RangeT >(range)))
 Returns the reverse-end iterator to range using std::rend and functions found through Argument-Dependent Lookup (ADL).
template<typename T>
constexpr void llvm::adl_swap (T &&lhs, T &&rhs) noexcept(noexcept(adl_detail::swap_impl(std::declval< T >(), std::declval< T >())))
 Swaps lhs with rhs using std::swap and functions found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto llvm::adl_size (RangeT &&range) -> decltype(adl_detail::size_impl(std::forward< RangeT >(range)))
 Returns the size of range using std::size and functions found through Argument-Dependent Lookup (ADL).
void llvm::adl_detail::swap (llvm::BitVector &LHS, llvm::BitVector &RHS)
 Implement std::swap in terms of BitVector swap.