41#ifndef PB_DS_LU_POLICY_HPP
42#define PB_DS_LU_POLICY_HPP
57 template<
typename _Alloc = std::allocator<
char> >
61 typedef _Alloc allocator_type;
68 typedef typename detail::rebind_traits<_Alloc, metadata_type>::reference
74 {
return s_metadata; }
90 template<std::
size_t Max_Count = 5,
typename _Alloc = std::allocator<
char> >
95 typedef _Alloc allocator_type;
96 typedef typename allocator_type::size_type size_type;
113 typedef typename detail::rebind_traits<_Alloc, metadata_type>::reference
119 {
return base_type::operator()(
max_count); }
125 {
return base_type::operator()(r_data,
max_count); }
GNU extensions for policy-based data structures for public use.
bool operator()(metadata_reference r_metadata) const
Decides whether a metadata object should be moved to the front of the list.
detail::rebind_traits< _Alloc, metadata_type >::reference metadata_reference
Reference to metadata on which this functor operates.
null_type metadata_type
Metadata on which this functor operates.
metadata_type operator()() const
Creates a metadata object.
detail::rebind_traits< _Alloc, metadata_type >::reference metadata_reference
Reference to metadata on which this functor operates.
detail::lu_counter_metadata< size_type > metadata_type
Metadata on which this functor operates.
metadata_type operator()() const
Creates a metadata object.
bool operator()(metadata_reference r_data) const
Decides whether a metadata object should be moved to the front of the list.
@ max_count
When some element is accessed this number of times, it will be moved to the front of the list.
Represents no type, or absence of type, for template tricks.
Base class for list-update counter policy.
A list-update metadata type that moves elements to the front of the list based on the counter algorit...