|
Boost : |
From: Sascha Seewald (sascha.seewald_at_[hidden])
Date: 2005-11-01 08:35:08
Hi Boosters!
I've been playing around with BOOST_FOREACH a little and got
some unexpected results. The following program crashes when
I try to iterate a const map with BOOST_FOREACH. That's
really strange because for the non-const map everything
works fine.
Please take a look at the source. What's wrong here? Did I
miss something?
This is the version in cvs on vc-8_0.
Cheers
Sascha
-----------------------------------------------------------------
<source>
#include <boost/foreach.hpp>
#include <map>
class foo
{
public:
typedef std::map<int, float> map_type;
/// return copy of map
map_type map() const { return _map; }
/// return const copy of map
map_type const map_c() const { return _map; }
private:
map_type _map;
};
void main()
{
foo f;
// iterate copy ... ok
BOOST_FOREACH( foo::map_type::value_type i, f.map() ) {}
// iterate const copy ... crashes here! :-(
BOOST_FOREACH( foo::map_type::value_type i, f.map_c() ) {}
}
</source>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk