cortexlib  v0.2.0
Classes | Namespaces | Functions
normal.hxx File Reference

Adapts a non-object iterator to an object iterator without changing its semantics. More...

#include <iterator>
#include <ranges>
#include <type_traits>
#include <utility>
Include dependency graph for normal.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cxl::normal_iterator< Iterator, Container >
 Normal Iterator. More...
 

Namespaces

 cxl
 
 std
 

Functions

template<typename IterL , typename IterR , typename Container >
constexpr auto cxl::operator== (const normal_iterator< IterL, Container > &lhs, const normal_iterator< IterR, Container > &rhs) noexcept(noexcept(lhs.base()==rhs.base())) -> bool
 Equality Operator Overload. More...
 
template<typename Iterator , typename Container >
constexpr auto cxl::operator== (const normal_iterator< Iterator, Container > &lhs, const normal_iterator< Iterator, Container > &rhs) noexcept(noexcept(lhs.base()==rhs.base())) -> bool
 Equality Operator Overload. More...
 
template<typename IterL , typename IterR , typename Container >
constexpr auto cxl::operator!= (const normal_iterator< IterL, Container > &lhs, const normal_iterator< IterR, Container > &rhs) noexcept(noexcept(lhs.base() !=rhs.base())) -> bool
 Inequality Operator Overload. More...
 
template<typename Iterator , typename Container >
constexpr auto cxl::operator!= (const normal_iterator< Iterator, Container > &lhs, const normal_iterator< Iterator, Container > &rhs) noexcept(noexcept(lhs.base() !=rhs.base())) -> bool
 Inequality Operator Overload. More...
 
template<typename IterL , typename IterR , typename Container >
constexpr auto cxl::operator< (const normal_iterator< IterL, Container > &lhs, const normal_iterator< IterR, Container > &rhs) noexcept(noexcept(lhs.base()< rhs.base())) -> bool
 Less-than Operator Overload. More...
 
template<typename Iterator , typename Container >
constexpr auto cxl::operator< (const normal_iterator< Iterator, Container > &lhs, const normal_iterator< Iterator, Container > &rhs) noexcept(noexcept(lhs.base()< rhs.base())) -> bool
 Less-than Operator Overload. More...
 
template<typename IterL , typename IterR , typename Container >
constexpr auto cxl::operator> (const normal_iterator< IterL, Container > &lhs, const normal_iterator< IterR, Container > &rhs) noexcept(noexcept(lhs.base() > rhs.base())) -> bool
 Greater-than Operator Overload. More...
 
template<typename Iterator , typename Container >
constexpr auto cxl::operator> (const normal_iterator< Iterator, Container > &lhs, const normal_iterator< Iterator, Container > &rhs) noexcept(noexcept(lhs.base() > rhs.base())) -> bool
 Greater-than Operator Overload. More...
 
template<typename IterL , typename IterR , typename Container >
constexpr auto cxl::operator<= (const normal_iterator< IterL, Container > &lhs, const normal_iterator< IterR, Container > &rhs) noexcept(noexcept(lhs.base()<=rhs.base())) -> bool
 Less-than-or-Equal Operator Overload. More...
 
template<typename Iterator , typename Container >
constexpr auto cxl::operator<= (const normal_iterator< Iterator, Container > &lhs, const normal_iterator< Iterator, Container > &rhs) noexcept(noexcept(lhs.base()<=rhs.base())) -> bool
 Less-than-or-Equal Operator Overload. More...
 
template<typename IterL , typename IterR , typename Container >
constexpr auto cxl::operator>= (const normal_iterator< IterL, Container > &lhs, const normal_iterator< IterR, Container > &rhs) noexcept(noexcept(lhs.base() >=rhs.base())) -> bool
 Greater-than-or-Equal Operator Overload. More...
 
template<typename Iterator , typename Container >
constexpr bool cxl::operator>= (const normal_iterator< Iterator, Container > &lhs, const normal_iterator< Iterator, Container > &rhs) noexcept(noexcept(lhs.base() >=rhs.base())) -> bool
 Greater-than-or-Equal Operator Overload. More...
 
template<typename IterL , typename IterR , typename Container >
normal_iterator< IterL, Container >::difference_type cxl::operator- (const normal_iterator< IterL, Container > &lhs, const normal_iterator< IterR, Container > &rhs)
 Difference Operator Overload. More...
 
template<typename Iterator , typename Container >
normal_iterator< Iterator, Container >::difference_type cxl::operator- (const normal_iterator< Iterator, Container > &lhs, const normal_iterator< Iterator, Container > &rhs)
 Difference Operator Overload. More...
 
template<typename Iterator , typename Container >
constexpr auto cxl::operator+ (typename normal_iterator< Iterator, Container >::difference_type n, const normal_iterator< Iterator, Container > &i) noexcept -> normal_iterator< Iterator, Container >
 Addition Operator Overload. More...
 
template<typename Container >
constexpr auto cxl::make_normal_iterator (typename Container::iterator i) noexcept -> normal_iterator< typename Container::iterator, Container >
 Makes a new normal_iterator. More...
 
template<typename Iterator , typename Container >
constexpr auto cxl::make_normal_iterator (Iterator i) noexcept -> normal_iterator< Iterator, Container >
 Makes a new normal_iterators. More...
 
template<typename Iterator , typename Container >
constexpr auto std::iter_move (const cxl::normal_iterator< Iterator, Container > &i) noexcept(is_nothrow_copy_constructible_v< Iterator > &&noexcept(ranges::iter_move(declval< Iterator & >()))) -> iter_rvalue_reference_t< Iterator >
 rvalue cast More...
 
template<typename Iterator , std::indirectly_swappable< Iterator > Iter2, typename Container >
constexpr auto std::iter_swap (const cxl::normal_iterator< Iterator, Container > &x, const cxl::normal_iterator< Iter2, Container > &y) noexcept(std::is_nothrow_copy_constructible_v< Iterator > &&std::is_nothrow_copy_constructible_v< Iter2 > &&noexcept(ranges::iter_swap(std::declval< Iterator & >(), std::declval< Iter2 & >()))) -> void
 Swaps iterator objects. More...
 

Detailed Description

Adapts a non-object iterator to an object iterator without changing its semantics.

Author: Tyler Swann (tyler.nosp@m..swa.nosp@m.nn05@.nosp@m.gmai.nosp@m.l.com)

Header Version: v0.1.2

Date: 23-03-2023

License: MIT

Copyright: Copyright (c) 2022-2023