Boost logo

Boost Users :

Subject: Re: [Boost-users] [MPL][Config] Can no longer pre-generate headers for MPL-containers with more than 50 elements.
From: Deniz Bahadir (dbahadir_at_[hidden])
Date: 2015-04-10 07:35:56


>> Does anyone know how to workaround or better fix this? Or does anyone
>> know who to talk to, to get these problems fixed?
>> Also, I would suggest, that documentation for these python-scripts are
>> added to the documentation of Boost.MPL.
>
> I couldn't get your bash script to work for me with cygwin - and you're
> correct that these should be much better documented!

I do not have cygwin and therefore cannot check that. (I am using
Linux.) However, I realized that for the python-scripts it is crucial
that the path to Boost's source-directory is an absolute path.

I adjusted the bash-script accordingly and also extended it with some
additional functionality. (For Boost up to 1.55.0 it should work.)
Please give it a try ([1]). (Try to call the script with a value of '30'
for the optional second argument.)

> However, using Boost.Config with BOOST_NO_CONFIG works just fine for me,
> the only thing that would trip it up would be if
> BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined - as support for
> this is now removed from Boost. Looking at the scripts I suspect it's
> generating headers for a variety of compilers in one go?

I would guess so, too.

> And it looks
> like some of those are old ones no longer supported.
>
> Try this: in the python files are a number of lists which include
> "no_ctps", "msvc60", "msvc70". Try removing these from the lists and
> run again.

You are right. The "user.hpp" files for these three compilers in the
corresponding subdirectories in [2] each contain the macro-definition of
BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION.
When removing the entries from the lists in the python-scripts as you
suggest, no warnings or errors occur during generation.
However, the resulting files in subdirectories of [3] (for the
corresponding compilers) are all empty. Somehow, generation still fails.

> If that works, can you file a pull request on Github?

Sadly, it did not work. It just prevented a lot of errors but did not
generate proper files.
(Also, I must first check, how to file a pull request on Github. :-) )

Deniz

References:
[1] http://stackoverflow.com/a/20660264/3115457
[2] ${BOOST_SOURCE}/libs/mpl/preprocessed/include/
[3] ${BOOST_SOURCE}/boost/mpl/aux_/preprocessed/


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net