layer.h File Reference

This file contains concepts for C++ 20 along with some helper types to make it easier to produce iterators for the container wrappers (providers). More...

#include "garlic.h"
#include "containers.h"
Include dependency graph for layer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  garlic::BasicIteratorWrapper< ValueType, Iterator >
 A trivial and basic iterator wrapper that conforms to the IteratorWrapper concept. More...
 
class  garlic::ForwardIterator< Container, DifferenceType >
 A forward iterator that takes an IteratorWrapper as a guide to produce a complete iterator. More...
 
class  garlic::RandomAccessIterator< Container, DifferenceType >
 A random access iterator that takes an IteratorWrapper as a guide to produce a complete iterator. More...
 
class  garlic::back_inserter_iterator< LayerType >
 A generic bask inserter iterator for all garlic Layer types. More...
 
struct  garlic::MemberPair< ValueType, KeyType >
 Generic struct to hold a pair to be used to store key-value associations in an object. More...
 
struct  garlic::ConstListRange< LayerType >
 Wrapper struct that can be used in a for-loop range iterating over lists. More...
 
struct  garlic::ListRange< LayerType >
 Wrapper struct that can be used in a for-loop range iterating over lists. More...
 
struct  garlic::ConstMemberRange< LayerType >
 Wrapper struct that can be used in a for-loop range iterating over an object's members. More...
 
struct  garlic::MemberRange< LayerType >
 Wrapper struct that can be used in a for-loop range iterating over an object's members. More...
 

Typedefs

template<typename ValueType , typename Iterator >
using garlic::BasicForwardIterator = ForwardIterator< BasicIteratorWrapper< ValueType, Iterator > >
 
template<typename ValueType , typename Iterator >
using garlic::BasicRandomAccessIterator = RandomAccessIterator< BasicIteratorWrapper< ValueType, Iterator > >
 Very basic random access iterator useful for making wrapper iterators for new providers. More...
 

Functions

template<GARLIC_REF LayerType>
static back_inserter_iterator< LayerType > garlic::back_inserter (LayerType &&layer)
 Helper method to produce garlic back inserter iterators.
 

Detailed Description

This file contains concepts for C++ 20 along with some helper types to make it easier to produce iterators for the container wrappers (providers).

Typedef Documentation

◆ BasicForwardIterator

template<typename ValueType , typename Iterator >
using garlic::BasicForwardIterator = typedef ForwardIterator< BasicIteratorWrapper<ValueType, Iterator> >

Very basic forward iterator useful for making wrapper iterators for new providers.

Template Parameters
ValueTypeis the output garlic Layer type.
Iteratoris the underlying iterator type whose values get wrapped by the ValueType.

◆ BasicRandomAccessIterator

template<typename ValueType , typename Iterator >
using garlic::BasicRandomAccessIterator = typedef RandomAccessIterator< BasicIteratorWrapper<ValueType, Iterator> >

Very basic random access iterator useful for making wrapper iterators for new providers.

Template Parameters
ValueTypeis the output garlic Layer type.
Iteratoris the underlying iterator type whose values get wrapped by the ValueType.