1#ifndef XRPL_LEDGER_READVIEWFWDRANGE_H_INCLUDED 
    2#define XRPL_LEDGER_READVIEWFWDRANGE_H_INCLUDED 
   16template <
class ValueType>
 
   46template <
class ValueType>
 
   54        "ReadViewFwdRange move and move assign constructors should be " 
 
ReadViewFwdIter()=default
 
virtual value_type dereference() const =0
 
virtual std::unique_ptr< ReadViewFwdIter > copy() const =0
 
virtual ~ReadViewFwdIter()=default
 
virtual void increment()=0
 
ReadViewFwdIter(ReadViewFwdIter const &)=default
 
virtual bool equal(ReadViewFwdIter const &impl) const =0
 
ReadViewFwdIter & operator=(ReadViewFwdIter const &)=default
 
pointer operator->() const
 
iterator(ReadView const *view, std::unique_ptr< iter_base > impl)
 
iterator & operator=(iterator const &other)
 
value_type const  * pointer
 
iterator & operator=(iterator &&other) noexcept
 
iterator(iterator &&other) noexcept
 
std::unique_ptr< iter_base > impl_
 
std::optional< value_type > cache_
 
value_type const  & reference
 
bool operator!=(iterator const &other) const
 
bool operator==(iterator const &other) const
 
reference operator*() const
 
iterator(iterator const &other)
 
ReadViewFwdRange(ReadViewFwdRange const &)=default
 
ReadViewFwdRange()=delete
 
ReadViewFwdRange & operator=(ReadViewFwdRange const &)=default
 
ReadViewFwdRange(ReadView const &view)
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.