template<class Arg>
class OEIdxSelected : public OESystem::OEUnaryPredicate<Arg>

This class represents OEIdxSelected, a template functor that identifies objects which provide a GetIdx method and have been selected by index in the boolean array or vector or OEBitVector used to initialize the class.

The following methods are publicly inherited from OEUnaryPredicate:




The following methods are publicly inherited from OEUnaryFunction:



The following specializations exist for this template:

Specialized Functor



OEIdxSelected <OEAtomBase>


OEIdxSelected <OEBondBase>


OEIdxSelected <OEConfBase>


OEIdxSelected(const OESystem::OEBitVector &bv)
OEIdxSelected(const std::vector<bool> &vb)
OEIdxSelected(const bool *ap, unsigned int sz)
OEIdxSelected(const bool *ap)

Construct the functor from an OEBitVector, vector<bool> or boolean array (call it s) where the selection state of the object with internal index i is stored at s[i] (e.g. bv.SetBitOn(atom.GetIdx())). The caller is responsible for making sure that the input OEBitVector, vector<bool> or array is sufficient size to refer to the maximum index value of the objects it will be applied to.

If only const bool *ap is supplied to the constructor, the functor continues to accesses the boolean array by its pointer. In that case, the caller is responsible for making certain that it is not be deleted before this functor is called. Because of this, it is recommended that you pass in the array size as well.

If other arguments are supplied to the constructor, the selection states will be copied into an internal representation and the OEBitVector, vector<bool> or array can be deleted before the functor is called.


bool operator()(const Arg &a) const

Returns true, if the state of the array, vector or OEBitVector used to construct the functor at the index returned by the Arg.GetIdx() method is true.


OETYPENAME OESystem::OEUnaryFunction<Arg, bool> *CreateCopy() const

Deep copy constructor that returns a copy of the object. The memory for the returned OEIdxSelected object is dynamically allocated and owned by the caller.

The returned copy should be deallocated using C++ delete operator in order to prevent a memory leak.