Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4523: fix for #4501
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-05-18 06:31:41
#4523: fix for #4501
---------------------------+---------------------------
Reporter: ookami1@⦠| Owner: no-maintainer
Type: Patches | Status: new
Milestone: Boost 1.44.0 | Component: preprocessor
Version: Boost 1.44.0 | Severity: Problem
Resolution: | Keywords:
---------------------------+---------------------------
Comment (by eldiener):
I have fixed this on the latest 'develop' branch of Boost PP. I have used
a different techniques than the patches submitted as I did not want to
make as drastic a change as was suggested to auto_rec. I did use the
technique suggested in the seq_for_each patch of caching the seq size
rather than having to recalculate it each time. The fix further consists
of accepting the 257th inner-loop in BOOST_PP_FOR without forcing an error
as long the op(r,state) returned 0, meaning the BOOST_PP_FOR processing is
finished.
I tested this successfully with gcc and clang with the example given in
#4501. The VC++ compiler issues a compiler error:
{{{
fatal error C1009: compiler limit : macros nested too deeply
}}}
but Boost PP can do nothing about that. VC++ succeeds when the number of
sequence elements are more reasonable, althoug I did not experiment with
the exact maximum number on which VC++ will process a
BOOST_PP_SEQ_FOR_EACH correctly.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4523#comment:11> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:18 UTC