MemberCompare(T C::*p): mem_ptr(p) { }
bool operator()(const C &obj, const T &v) { return obj.*mem_ptr<v; }
+ bool operator()(const T &v, const C &obj) { return v<obj.*mem_ptr; }
bool operator()(const C &obj1, const C &obj2) { return obj1.*mem_ptr<obj2.*mem_ptr; }
};
stable_sort(cont, MemberCompare<typename Container::value_type, T>(mp));
}
+template<typename Container, typename Predicate>
+inline void transform(Container &cont, Predicate pred)
+{
+ transform(cont.begin(), cont.end(), cont.begin(), pred);
+}
+
} // namespace Msp
#endif