Boost logo

Boost :

Subject: Re: [boost] [foreach] use of boost_foreach_argument_dependent_lookup_hack
From: Tim Blechmann (tim_at_[hidden])
Date: 2015-07-14 13:13:02

>>> template<typename SuperMeta,typename TagList>
>>> inline boost::mpl::true_* boost_foreach_is_noncopyable(
>>> boost::multi_index::detail::sequenced_index<SuperMeta,TagList>*&,
>>> boost::foreach::tag)
>>> {
>>> return 0;
>>> }
>>> Unfortunately Qt (in some configuration modes, at least), defines
>>> a macro foreach to Q_FOREACH, which produces the following problem,
>>> even if Boost.Foreach was not intended to be used:
>> btw, this can easily be workarounded by using push_macro/pop_macro
>> pragmas on the most widely used compilers.
> I'm rather conversative and prefer a pragma-free workaround: I don't
> know which exact compiler versions support push_macro etc.

it is supported by msvc for ages and by gcc since 4.6 and clang ...

>> i've submitted some pull requests about this for several libraries, but
>> some devs prefer to blame qt for introducing pseudokeywords instead of
>> merging the workarounds
> The problem is that blaming Qt puts the burden on their blameless users...
> I'm all for workarounds if they're not overkill.

simply blaming qt is much easier than merging a fix :(

iirc this fix would be needed by foreach, multiindex and flyweight ...
so definitely no overkill that would help a lot of users ...

Boost list run by bdawes at, gregod at, cpdaniel at, john at