Boost logo

Boost :

Subject: Re: [boost] [accumulators] broken on msvc
From: Jürgen Hunold (jhunold_at_[hidden])
Date: 2014-06-15 15:18:12


Am Sonntag, 15. Juni 2014, 20:23:43 schrieb Andrey Semashev:
> On Sun, Jun 15, 2014 at 8:03 PM, Jürgen Hunold <jhunold_at_gmx.eu> wrote:
> > My own code broke with an identical message sometime last week.
> > Any ideas?
>
> I think there's a missing #include <boost/preprocessor/cat.hpp> in
> boost/accumulators/accumulators_fwd.hpp. There is another use of
> BOOST_PP_CAT in boost/accumulators/numeric/detail/function_n.hpp but
> it has the #include. I don't see how this could be related to
> boost/accumulators/framework/accumulators/reference_accumulator.hpp
> though.

As there are no changes in accumulators I've trace the bug back to
preprocessor. Bisecting the error leads to:

> c66ea5871fd44274f681f02323c4d46bdf394c7c is the first bad commit
> commit c66ea5871fd44274f681f02323c4d46bdf394c7c
> Author: Edward Diener <eldiener_at_[hidden]>
> Date: Wed Apr 30 16:06:49 2014 -0400
>
> Addition of is_empty tests and changes to rem processing as a workaround
> to VC++ problem.

the culprit might be this change, which moves cat.hpp out of scope for msvc:

diff --git a/include/boost/preprocessor/facilities/is_empty.hpp
b/include/boost/preprocessor/facilities/is_empty.hpp
index b1094d8..e7f821f 100644
--- a/include/boost/preprocessor/facilities/is_empty.hpp
+++ b/include/boost/preprocessor/facilities/is_empty.hpp
@@ -22,10 +22,13 @@
 # else
 #
 # include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/cat.hpp>
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() &&
~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
 # include <boost/preprocessor/tuple/elem.hpp>
 # include <boost/preprocessor/facilities/empty.hpp>
+# else
+# include <boost/preprocessor/cat.hpp>
 # include <boost/preprocessor/detail/split.hpp>
+# endif
 #
 # /* BOOST_PP_IS_EMPTY */
 #

The question remains: Who fixes this where?

Yours,

Jürgen

-- 
* Dipl.-Math. Jürgen Hunold  ! 
* voice: ++49 4257 300       ! Fährstraße 1
* fax  : ++49 4257 300       ! 31609 Balge/Sebbenhausen
* jhunold_at_gmx.eu             ! Germany

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