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