
Sebastian Redl wrote:
C++0x range-based for is available on GCC 4.6 (Pre-release). There is no BOOST_NO_RANGE_BASED_FOR macro, so I made a patch against trunk and made a test case. Please see attached files. Is it reasonable to add this macro?
I don't think there's really a point, unless you want Boost's users to use the config macros. Range-based for is a convenience functionality, not an enabling functionality. In other words, if you can't use it all the time, but have to write the long form anyway, what's the point in using it?
Range-based for conflicts with many Boost libraries. This issue can be resolved by fixing boost/range/begin.hpp and boost/range/end.hpp, which needs BOOST_NO_RANGE_BASED_FOR macro. Yeah, we can always use BOOST_FOREACH instead of range-based for. And considering portability, BOOST_FOREACH is a must. But IMHO it's a pity that users of the Boost libraries are recommended not to use a language feature. Regards, Michel