Hi,
Boost.MultiIndex indices, which are not copyable, interoperate with
Boost.Foreach by defining the following:
template
inline boost::mpl::true_* boost_foreach_is_noncopyable(
boost::multi_index::detail::sequenced_index*&,
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:
http://tinyurl.com/nq52xho
My question is: would it be OK if the code above was rewritten like
template
inline boost::mpl::true_* boost_foreach_is_noncopyable(
boost::multi_index::detail::sequenced_index*&,
boost_foreach_argument_dependent_lookup_hack)
{
return 0;
}
so that "foreach" is not ever mentioned? I understand that Boost.Foreach
would still not work unless the macro is not defined, but this would
at least save Boost.MultiIndex, which doesn't really depend on
Boost.Foreach.
Thanks for your comments,
Joaquín M López Muñoz
Telefónica