From: "Joel de Guzman" <[EMAIL PROTECTED]> > From: "Peter Dimov" <[EMAIL PROTECTED]> > > From: "Aleksey Gurtovoy" <[EMAIL PROTECTED]> > > > If you are tired of angle brackets in your templates (no, it's not a TV > > > commercial :), may be you'll like this one: > > > > > > typedef eval< > > > count_if( > > > list(int,char,long,int) > > > , lambda(is_same(_,int)) > > > ) > > > >::type res; > > > > > > BOOST_STATIC_ASSERT(res::value == 2); > > > > OK, I give up. How does this work? > > I've been twisting my mind very hard the past hour trying to > imagine how this will work without peeking at the code. > Whew, this is a tough one to crack!
I wrote "I don't understand how it works even _after_ (briefly) looking at the code. ;-)" but then it occured to me that list(int, char, long, int) is a function type. Cool trick. Cv qualifiers will probably be a problem but it's cool. Aleksey wins the Boost obfuscated C++ contest of the week. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost