Opened 14 years ago
Last modified 10 years ago
#2289 new Bugs
Problem with BOOST_AUTO and this keyword on VC8/9
| Reported by: | Owned by: | Peder Holt | |
|---|---|---|---|
| Milestone: | Boost 1.37.0 | Component: | typeof |
| Version: | Boost 1.51.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
On both VC8SP1 and VC9SP1, the code
struct foo
{
int i;
foo::foo()
{
BOOST_AUTO(j, this->i);
}
};
results in the compiler error
error C2355: 'this' : can only be referenced inside non-static member functions
error C2227: left of '->i' must point to class/struct/union/generic type
error C2955: 'boost::type_of::msvc_typeid_wrapper' : use of class template requires template argument list
e:\boostsvn\boost\typeof\msvc\typeof_impl.hpp(209) : see declaration of 'boost::type_of::msvc_typeid_wrapper'
In both cases, changing it to simply BOOST_AUTO(j, i); allows it to compile.
The foreach lib used to have a similar problem (Ticket #1652), possibly down to the same compiler bug?
Note:
See TracTickets
for help on using tickets.

Get the same problem in Boost 1.51.0 with VC9