Boost logo

Boost :

From: Hamish Mackenzie (hamish_at_[hidden])
Date: 2002-04-16 11:22:32

On Tue, 2002-04-16 at 16:43, David Abrahams wrote:
> It doesn't surprise me. See
> The
> implementations of template matching in some of these compilers is...
> well, let's just say it wasn't designed with metaprogramming in mind.
> Lots of linear list searches, for example.

The thing is that gcc seems to do a very good job at simple top-level
recursion. I upped the list size to 200 and it still took around 4
seconds to compile. This goes up to 9 seconds if I get it to return a
boolean value.

I also tried this....

namespace boost{ namespace mpl {
template< typename State, typename ForwardOp >
struct fold< null_node, State, ForwardOp, project1st<_,_> >
        typedef State type;

template< class Head, class Tail, typename State, typename ForwardOp >
struct fold< list_node< Head, Tail >, State, ForwardOp, project1st<_,_>
        typedef typename fold<
                typename ForwardOp::apply< State, Head >::type,
                project1st< _, _ > >::type type;

} }

Which started getting slow around N=18 (took 18.15 seconds).


Boost list run by bdawes at, gregod at, cpdaniel at, john at