
on Thu Mar 29 2007, Scott Meyers <usenet-AT-aristeia.com> wrote:
David Abrahams wrote:
Yeah, why struggle? This problem looks tailor-made for filter_view.
Skipping over the struggling comment (it's not like I'm deliberately choosing it),
Sorry.
what makes filter_view a better choice? With both implementations, doesn't eraseVal::type yield a new sequence?
I didn't look too closely at what template<typename Seq, typename T> struct eraseVal : mpl::eval_if< boost::is_same<typename mpl::find<Seq, T>::type, typename mpl::end<Seq>::type>, typename mpl::identity<Seq>::type, eraseVal<typename mpl::erase<Seq, typename mpl::find<Seq,T>::type, typename mpl::next<typename mpl::find<Seq,T>::type>::type >::type, T> > {}; was doing, but it seemed like a much bigger struggle than template<typename Seq, typename T> struct eraseVal : filter_view<Seq, mpl::not_<boost::is_same<_, T> > > {};
If filter_view<Seq, Pred> is always better than copy_if<Seq, Pred>, why do we need both?
Oh, I didn't see copy_if anywhere. I'm not sure filter_view is always better, but the question of why we need both has definitely crossed my mind, and I don't have a good answer. -- Dave Abrahams Boost Consulting www.boost-consulting.com Don't Miss BoostCon 2007! ==> http://www.boostcon.com