P4C
The P4 Compiler
Loading...
Searching...
No Matches
assoc::detail::CondIterableAssoc< Base, Itble > Class Template Reference

#include <assoc.h>

Inheritance diagram for assoc::detail::CondIterableAssoc< Base, Itble >:
[legend]

Public Types

using allocator_type = typename Base::allocator_type
 
using const_iterator = typename Base::const_iterator
 
using const_pointer = typename Base::const_pointer
 
using const_reference = typename Base::const_reference
 
using const_reverse_iterator = typename Base::const_reverse_iterator
 
using difference_type = typename Base::difference_type
 
using iterator = typename Base::iterator
 
using key_type = typename Base::key_type
 
using pointer = typename Base::pointer
 
using reference = typename Base::reference
 
using reverse_iterator = typename Base::reverse_iterator
 
using size_type = typename Base::size_type
 
using value_type = typename Base::value_type
 
- Public Types inherited from assoc::detail::CondIterableAssocBase< Base, Itble, typename >
using hasher = typename Base::hasher
 
using key_equal = typename Base::key_equal
 

Public Member Functions

const_iterator begin () const noexcept
 
iterator begin () noexcept
 
const_iterator cbegin () const noexcept
 
bool contains (const key_type &key) const
 
const_reverse_iterator crbegin () const noexcept
 
std::pair< iterator, iterator > equal_range (const key_type &key)
 
std::pair< const iterator, const_iterator > equal_range (const key_type &key) const
 
iterator lower_bound (const key_type &key)
 
const_iterator lower_bound (const key_type &key) const
 
const_reverse_iterator rbegin () const noexcept
 
reverse_iterator rbegin () noexcept
 
const_iterator unstable_begin () const noexcept
 
iterator unstable_begin () noexcept
 
const_iterator unstable_cbegin () const noexcept
 
iterator upper_bound (const key_type &key)
 
const_iterator upper_bound (const key_type &key) const
 

Protected Member Functions

void _ensure_iterable () const
 

Additional Inherited Members

- Static Public Attributes inherited from assoc::detail::CondIterableAssocBase< Base, Itble, typename >
static constexpr bool iterable = Itble == Iterable::Yes
 

Detailed Description

template<typename Base, Iterable Itble>
class assoc::detail::CondIterableAssoc< Base, Itble >

This class implements most of the wrapping of conditionally-iterable containers and is intended to be used as base of the actual wrappers. It is missing the pieces that distinguish sets from maps and functions that should be defined with the end type – swap and comparison operators.