Логические операции (Logical operations)
template struct logical_and : binary_function { bool operator()(const T& x, const T& y) const { return x && y; } };
template struct logical_or : binary_function { bool operator()(const T& x, const T& y) const { return x y; } };
template struct logical_not : unary_function { bool operator()(const T& x) const { return !x; } };