Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-02-21 18:02:40


I was having a bit of trouble this afternoon getting some MPL code to
compile, when I realized I was trying to use a placeholder symbol
embedded in an expression using a metafunction of arity 7. I know that
the maximum metafunction arity is set at 5, so I tried setting
BOOST_MPL_METAFUNCTION_MAX_ARITY to 7. This didn't work either,
because of the preprocessed headers. So I tried defining
BOOST_MPL_NO_PREPROCESSED_HEADERS. This reduced the number of error
messages from infinity to 27.

So I have these questions:

1. Am I right that as presently configured mpl::lambda cannot look for
placeholders inside (fully-curried) metafunctions of arity > 5?
2. Are preprocessed headers used just to cut compilation times, or for
some more fundamental reason? If it is just to save time, how much
time does it save?
3. Is there any way to circumvent the preprocessed headers entirely to
compile mpl with a different max arity?

Jonathan


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk