Thanks, I was about to post the same link, didn't know that GCC 4.9 implements it. In any case, isn't adding new overloads to namespace std as Boost.Coroutine does illegal anyway (as per 17.6.4.2.1 which allows specializations for user defined types, not, however, overloads)? -- 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 Michel Morin Sent: Thursday, August 28, 2014 08:32 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Cannot use Boost.Croutines with range based for 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. Regards, Michel _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users