Boost logo

Boost :

From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2002-05-12 16:21:38


(part 2)

This compiles in 12 seconds on my 600MHz machine with Comeau C++ (with
BOOST_PYTHON_MAX_ARITY == 50 *not* 15)--also, the entire preprocessor output is
debuggable. It took 50 seconds with BOOST_PYTHON_MAX_ARITY == 100, which is a
bit much, but then that is a ridiculously high number of parameters.
(Incidently, if BOOST_PYTHON_MAX_ARITY == 15, it takes 2.5 seconds to compile.)
I attached the preprocessor output from Comeau C++ (w/BOOST_PYTHON_MAX_ARITY ==
15 and everything but the expansion of this stuff for brevity).

For further testing, I put an underscore in front of some stuff like this:

template< _ class R, class O /* etc. */>

In other words, an obvious syntax error. I then ran a preprocessor pass, and
then compiled the output. These are the error messages I got:

"arg_tuple_size.hpp[0][0]", line 84: error: identifier "_" is undefined
    template<_ class R, class O >
             ^

"arg_tuple_size.hpp[0][0]", line 84: error: invalid combination of type
specifiers
    template<_ class R, class O >
               ^

"arg_tuple_size.hpp[0][0]", line 84: error: constant "<unnamed>" is not used
    in template argument list of class template
    "boost::python::detail::arg_tuple_size<boost::python::detail::R (O::*)()>"
        template<_ class R, class O >
                          ^

"arg_tuple_size.hpp[0][1]", line 84: error: identifier "_" is undefined
    template<_ class R, class O >
             ^

"arg_tuple_size.hpp[0][1]", line 84: error: invalid combination of type
specifiers
    template<_ class R, class O >
               ^

"arg_tuple_size.hpp[0][1]", line 84: error: constant "<unnamed>" is not used
    in template argument list of class template
    "boost::python::detail::arg_tuple_size<boost::python::detail::R (O::*)()>"
        template<_ class R, class O >
                          ^

// etc.

Note that the 'filename' shows the depth of iteration and the current iterator
values. Hows that for debuggable?

Paul Mensonides


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