extraction operations
As just discussed with @Mattijs, there are several places where we wish to do a list reduction of particular object quantities. For example, to obtain a list of names/types/sizes from the objects. The ListOps::create function will do some of that, but would benefit from some predefined functors.
Eg,
template<class T> struct nameOp
{
word operator()(const T& obj) const { return obj.name(); }
};
And later
ListOps::create<word>(patches, nameOp<polyPatch>());
Or
ListOps::create<word>(readDir(dirName), nameOp<fileName>());