
Hi, I've developed a small set of functors and functor adaptors. Although this code is very simple it might be very useful for some subset of the community. Do you think it might become a part of the boost library? If not I'm still very interested in any feedback. I think it's not big enough to be a separate library. To my knowledge of boost it fits in the utility lib. The code can be found here: https://github.com/wygos/functors List of utilities: SkipFunctor takes any number of arguments; does completely nothing ReturnSomethingFunctor<T,t> takes any number of arguments; returns t; IdentityFunctor takes one parameter and returns it. ReturnFalseFunctor takes any number of arguments; returns false; ReturnTrueFunctor takes any number of arguments; returns true; ReturnZeroFunctor takes any number of arguments; returns 0; AssertFunctor takes any number of arguments; asserts; ArrayToFunctor<Array> Stores an object which provides operator[]. Provides operator()(). A set of non-template comparison functors (only operator() is templated): * Greater * Less * GreaterEqual * LessEqual * EqualTo * NotEqualTo FunctorToComparator<Functor, Compare> This comparator takes a functor "f" and a comparator "c". For elements (x,y) it returns c(f(x), f(y)) c is Less by default FunctorToOutputIterator<Functor> The output iterator stores a functor and each time the operator= is called the given functor is called Logical operators as functors: * Not * Or * And * Xor LiftBinaryOperatorFunctor<Operator, FunctorLeft, FunctorRight> Functor stores a binary operator "o" and two functors "f" and "g". For given arguments args returns o(f(args), g(args)). Boolean functor adapters. Each of them stores a boolean functor and performs an appropriate logical operation in the operator(). * NotFunctor<Functor> * OrFunctor<FunctorLeft, FunctorRight> * AndFunctor<FunctorLeft, FunctorRight> * XorFunctor<FunctorLeft, FunctorRight> Regards, Piotr