monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] [Monotone-debian] Bug#653764: FTBFS with Boost 1.48


From: Zack Weinberg
Subject: Re: [Monotone-devel] [Monotone-debian] Bug#653764: FTBFS with Boost 1.48: lgamma_small.hpp:483:38: error: expected primary-expression before 'do'
Date: Sat, 31 Dec 2011 12:02:37 +0100

On Fri, Dec 30, 2011 at 9:53 PM, Steve M. Robbins <address@hidden> wrote:
> This package failed to build using the newest Boost version 1.48:
...
> /usr/include/boost/math/special_functions/detail/lgamma_small.hpp: In 
> function 'T boost::math::detail::lgamma_small_imp(T, T, T, const 
> mpl_::int_<0>&, const Policy&, const L&)':
...
> /usr/include/boost/math/special_functions/detail/lgamma_small.hpp:483:38: 
> error: expected primary-expression before 'do'

I'm not in a position to verify this for myself for another week, but
I have a horrible feeling I know what's wrong:  Monotone defines
several one-character macros for its own use, and L() is one of them.
It looks like Boost is using L() for its own purposes and expecting it
not to be a macro.

I'd argue that Boost headers should take care to defend themselves
from the possibility of such macros, but fixing that in Boost might be
an enormous amount of work, and in any case, 1.48 is already out
there.

If I'm right, this can also be fixed in monotone by moving all Boost
and stdlib #includes above most-but-not-all application #includes;
unfortunately that's exactly the opposite coding style from the
present usage, and may involve messing with the base.hh convention
(config.h obviously still needs to be the very first thing included in
every file).

zw



reply via email to

[Prev in Thread] Current Thread [Next in Thread]