Frank Mori Hess wrote:
Yes, that'd be nice. I think a non-throwing partial specialization (or a simulated one for compilers that don't support it) of last_value would be good.
If I'm following, you're saying something like
last_value<T, U=T> would be like the current last_value<T> and last_value<T, optional<T> > would be like last_optional<T>? It seems easier just to provide a stand-alone last_optional<T> since the implementation of last_value<T> is so trivial.
No, I meant a partial specialization for optional<T> directly, i.e. last_value<optional<T> >. That makes the return value of that function object (in our case the combiner) "optional", which reflects the intention to have it not throwing for an empty input range pretty well, I think. Regards Timmo Stange