
Eric Niebler wrote:
Shunsuke Sogame wrote:
Hi gurus,
VC++7.1/8 complains:
error C2355: 'this' : can only be referenced inside non-static member
about:
struct xxx : std::vector<int> { void test() { BOOST_FOREACH(int x, *this) { } } };
GCC compiles. Is this maybe a bug of VC++?
Looks like it. I can't think of a work-around. :-(
I just wanted to know whether it is legal or a bug. That is somewhat problematic if 'xxx' doesn't know the base range type. I note user workaround: struct xxx : std::vector<int> { void test() { foreach(*this); } template< class SelfT > void foreach(SelfT& self) { BOOST_FOREACH (int x, self) { } } }; Thanks! -- Shunsuke Sogame