Previous fileTop of DocumentContentsIndex pageNext file
Apache C++ Standard Library Reference Guide

Function Objects

Library:  General utilities

Local Index

No Entries

Summary

Objects with an operator() defined. They are used as arguments to templatized algorithms, in place of pointers to functions.

Synopsis

#include <functional>

Description

Function objects are objects with an operator() defined. They are important for the effective use of the standard library's generic algorithms, because the interface for each algorithmic template can accept either an object with an operator() defined, or a pointer to a function. The C++ Standard Library includes both a standard set of function objects, and a pair of classes that you can use as the base for creating your own function objects.

Function objects that take one argument are called unary function objects. Unary function objects must include the typedefs argument_type and result_type. Similarly, function objects that take two arguments are called binary function objects and, as such, must include the typedefs first_argument_type, second_argument_type, and result_type.

The classes unary_function and binary_function make the task of creating templatized function objects easier. The necessary typedefs for a unary or binary function object are included by inheriting from the appropriate function object class.

The function objects in the C++ Standard Library are listed below, together with a brief description of their operation. This Reference Guide also includes an alphabetic entry for each function.

Table 19: C++ Standard Library function objects and their operations

Name Operation

arithmetic functions

plus

addition x + y

minus

subtraction x - y

multiplies

multiplication x * y

divides

division x / y

modulus

remainder x % y

negate

negation - x

comparison functions

equal_to

equality test x == y

not_equal_to

inequality test x != y

greater

greater comparison x > y

less

less-than comparison x < y

greater_equal

greater than or equal comparison x >= y

less_equal

less than or equal comparison x <= y

logical functions

logical_and

logical conjunction x && y

logical_or

logical disjunction x || y

logical_not

logical negation ! x

Interface

Example

See Also

binary_function, unary_function

Standards Conformance

ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 20.3



Previous fileTop of DocumentContentsIndex pageNext file