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); }
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.
Base class for list-update counter policy.
GNU extensions for policy-based data structures for public use.
__rebind_m::other::reference metadata_reference
Reference to metadata on which this functor operates.
__rebind_m::other::reference metadata_reference
Reference to metadata on which this functor operates.
When some element is accessed this number of times, it will be moved to the front of the list.
null_type metadata_type
Metadata on which this functor operates.
bool operator()(metadata_reference r_metadata) const
Decides whether a metadata object should be moved to the front of the list.
Represents no type, or absence of type, for template tricks.
metadata_type operator()() const
Creates a metadata object.
A list-update metadata type that moves elements to the front of the list based on the counter algorit...
detail::lu_counter_metadata< size_type > metadata_type
Metadata on which this functor operates.