|
ALINK="#ff0000">
binary_compose<AdaptableBinaryFunction,AdaptableUnaryFunction1,AdaptableUnaryFunction2>
DescriptionBinary_compose is a function object adaptor. If f is an Adaptable Binary Function and g1 and g2 are both Adaptable Unary Functions, and if g1's and g2's return types are convertible to f's argument types, then binary_compose can be used to create a function object h such that h(x) is the same as f(g1(x), g2(x)). [1] [2]ExampleFinds the first element in a list that lies in the range from 1 to 10.list<int> L; ... list<int>::iterator in_range = find_if(L.begin(), L.end(), compose2(logical_and<bool>(), bind2nd(greater_equal<int>(), 1), bind2nd(less_equal<int>(), 10))); assert(in_range == L.end() || (*in_range >= 1 && *in_range <= 10)); Computes sin(x)/(x + DBL_MIN) for each element of a range. transform(first, last, first, compose2(divides<double>(), ptr_fun(sin), bind2nd(plus<double>(), DBL_MIN))); DefinitionDefined in the standard header functional, and in the nonstandard backward-compatibility header function.h. The binary_compose class is an SGI extension; it is not part of the C++ standard.Template parameters
Model ofAdaptable Unary FunctionType requirementsAdaptableBinaryFunction must be a model of Adaptable Binary Function. AdaptableUnaryFunction1 and AdaptableUnaryFunction2 must both be models of Adaptable Unary Function. The argument types of AdaptableUnaryFunction1 and AdaptableUnaryFunction2 must be convertible to each other. The result types of AdaptableUnaryFunction1 and AdaptableUnaryFunction2 must be convertible, respectively, to the first and second argument types of AdaptableBinaryFunction.Public base classesunary_function<AdaptableUnaryFunction1::argument_type, AdaptableBinaryFunction::result_type> Members
New membersThese members are not defined in the Adaptable Unary Function requirements, but are specific to binary_compose.
Notes[1] This is a form of function composition. The unary_compose adaptor allows composition of Adaptable Unary Functions; note, however, that once binary functions are introduced, there are several possible patterns of function composition. The binary_compose allows you to form a unary function by putting together two unary functions and a binary function, but you could also, for example, imagine putting together two unary functions and a binary function to form a binary function. In that case, f, g1, and g2 would be combined into a function object h such that h(x,y) = f(g1(x), g2(y)). See alsoThe function object overview, unary_compose, binder1st, binder2nd.Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation
|