bool operator()(const T& x, const T& y) const {return x ‹ y;}
};
template ‹class T›
struct greater_equal: binary_function‹T, T, bool› {
bool operator()(const T& x, const T& y) const {return x ›= y;}
};
template ‹class T›
struct less_equal: binary_function‹T, T, bool› {
bool operator()(const T& x, const T& y) const {return x ‹= y;}
};
Логические операции (Logical operations)
template ‹class T›
struct logical_and: binary_function‹T, T, bool› {
bool operator()(const T& x, const T& y) const {return x&& y;}
};
template ‹class T›
struct logical_or: binary_function‹T, T, bool› {
bool operator()(const T& x, const T& y) const {return x || y;}
};
template ‹class T›
struct logical_not: unary_function‹T, bool› {
bool operator()(const T& x) const {return!x;}
};
Распределители
Одна из общих проблем в мобильности - это способность инкапсулировать информацию относительно модели памяти. Эта информация включает типы указателей, тип их разности, тип размера объектов в этой модели памяти, также как её примитивы выделения и освобождения памяти.
STL принимается за эту проблему, обеспечивая стандартный набор требований для
Требования распределителей (Allocator requirements)
В следующей таблице мы предполагаем, что X - класс распределителей для объектов типа T, a - значение X, n имеет тип X::size_type, p имеет тип X::pointer, r имеет тип X::reference и s имеет тип X::const_reference.
Все операции c распределителями, как ожидается, сводятся к постоянному времени.
Таблица 7. Требования распределителей