| 
| template<typename RangeT>  | 
| constexpr auto  | begin_impl (RangeT &&range) -> decltype(begin(std::forward< RangeT >(range))) | 
| template<typename RangeT>  | 
| constexpr auto  | end_impl (RangeT &&range) -> decltype(end(std::forward< RangeT >(range))) | 
| template<typename RangeT>  | 
| constexpr auto  | rbegin_impl (RangeT &&range) -> decltype(rbegin(std::forward< RangeT >(range))) | 
| template<typename RangeT>  | 
| constexpr auto  | rend_impl (RangeT &&range) -> decltype(rend(std::forward< RangeT >(range))) | 
| template<typename T>  | 
| constexpr void  | swap_impl (T &&lhs, T &&rhs) noexcept(noexcept(swap(std::declval< T >(), std::declval< T >()))) | 
| template<typename RangeT>  | 
| constexpr auto  | size_impl (RangeT &&range) -> decltype(size(std::forward< RangeT >(range))) | 
| void  | swap (llvm::BitVector &LHS, llvm::BitVector &RHS) | 
|   | Implement std::swap in terms of BitVector swap.  
  |