
22 Apr
2012
22 Apr
'12
1:21 p.m.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3350.html claims: "Boost's range library focuses on defining a set of Range concepts that allow Containers to be Ranges. Because Containers are heavy-weight, this forces Boost to use references for all of their uses of Ranges, including Ranges that are captured by Range Adapters. This worked fine in C++98, where users couldn't name the types of the Range Adapters in order to declare local variables, but with C++11's auto keyword, users can now save adapted ranges. Since Boost's adapted ranges capture references to their arguments, which can be temporaries, this is no longer a safe design." Is this claim correct? If so, what's the real-world impact? --Beman