11.8.1 Specializations

template<class Arg, class Result>
class OEUnaryFunction<Arg,Result,true,false>

virutal Result operator()(const Arg &) = 0;
virtual OEUnaryFunction<Arg,Result,true,false> *CreateCopy() = 0;

This is a specialization of the functor base-class in OEChem. This specialization provides an operator() which takes a const argument and is a volatile. CreateCopy is a virtual constructor which allows copying of concrete derived objects using a reference to this base class.

template<class Arg, class Result>
class OEUnaryFunction<Arg,Result,false,true>

virutal Result operator()(Arg &) const = 0;
virtual OEUnaryFunction<Arg,Result,false,true> *CreateCopy() = 0;

This is a specialization of the functor base-class in OEChem. This specialization provides an operator() which takes a volatile argument and is a const. CreateCopy is a virtual constructor which allows copying of concrete derived objects using a reference to this base class.

template<class Arg, class Result>
class OEUnaryFunction<Arg,Result,false,false>

virutal Result operator()(Arg &) = 0;
virtual OEUnaryFunction<Arg,Result,false,false> *CreateCopy() = 0;

This is a specialization of the functor base-class in OEChem. This specialization provides an operator() which takes a volatile argument and is a volatile. CreateCopy is a virtual constructor which allows copying of concrete derived objects using a reference to this base class.