
Older compilers should already use ADL, so the solution I posted should be fine for them as well. Replacing the illegal std::begin and end in asymmetric_coroutine.hpp by namespace boost { namespace coroutines { using boost::begin; using boost::end; } } Works just fine on GCC 4.8.1 (don't have a working clang 3.4 to test) -- Johannes S. Mueller-Roemer, MSc Wiss. Mitarbeiter - Interactive Engineering Technologies (IET) Fraunhofer-Institut für Graphische Datenverarbeitung IGD Fraunhoferstr. 5 | 64283 Darmstadt | Germany Tel +49 6151 155-606 | Fax +49 6151 155-139 johannes.mueller-roemer@igd.fraunhofer.de | www.igd.fraunhofer.de -----Original Message----- From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Nat Goodspeed Sent: Thursday, August 28, 2014 15:19 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Cannot use Boost.Croutines with range based for On Thu, Aug 28, 2014 at 2:32 AM, Michel Morin <mimomorin@gmail.com> wrote:
As per DR1442 (for C++11), the rule of range-based-for has been changed. ( http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1442 )
The new rule does not add namespace `std` as an associated namespace. So `begin` and `end` should be defined as either
- member functions, or - as free functions in the enclosing namespaces (e.g. `boost::coroutines`).
Recent gcc and clang implemented the new rule.
Please correct me if I'm wrong -- but if Oliver makes such a change unconditionally, won't Boost.Coroutine's range-based-for support break on older compilers? How do other Boost libraries accommodate this change? Are there already canonical Boost workaround macros? _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users