bool PoldiPeak::lessThan(const PoldiPeak_sptr &first, const PoldiPeak_sptr &second, UncertainValue (PoldiPeak::*function)() const) { return static_cast<double>( boost::bind<UncertainValue>(function, first.get())()) < static_cast<double>( boost::bind<UncertainValue>(function, second.get())()); }