SBCFunctor Class Reference

This class describes a functor. More...

Constructors and destructors

 SBCFunctor ()
 Constructs a functor.
 
virtual ~SBCFunctor ()
 Destructs the functor.
 

Cloning

virtual SBCFunctorclone () const
 

Detailed Description

This class describes a functor. A functor is an object of a class that acts as a function.

For example, the only purpose of the following class is to compute the distance between two atoms:

class DistanceCalculator : public SBFunctor2<SBQuantity::length, SBAtom*, SBAtom*> {
public:
DistanceCalculator() {}
virtual ~DistanceCalculator() {}
SBQuantity::length operator(SBAtom* atom1, SBAtom atom2) {
return (atom1->getPosition() - atom2->getPosition()).norm();
}
};

The class SBCFunctor is the base class of all functor classes:

  • SBCFunctor0: a functor which takes no arguments
  • SBCFunctor1: a functor which takes 1 argument
  • ...
  • SBCFunctor16: a functor which takes 16 arguments

Functors are used in several places. In particular, predicates are functors that return a boolean and which may be logically combined.

Short name: SBFunctor

See also
SBCFunctorPredicate