Re: [Boost-bugs] [Boost C++ Libraries] #4523: fix for #4501

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