I just ran into this as well.  The problem seems to be
to MSVC's new strictness with the typename keyword,
which doesn't interact well with forward declarations
and nested classes.
I was able to get it to work by adding the line
   typename self_type::
just before the return value of every function that caused
the problem, e.g. in matrix.hpp line 404:

               typename self_type::
            const_iterator2 begin () const {
                const self_type &m = (*this) ();
                return m.find_first2 (1, index1 (), 0);

There are 60 places that needs to be done, but they're all identical.
I don't know how good a fix that really is, and for all I
know it may break other compilers (including VC7.0).
But it ought at least let you get on with what you're doing,
until a new release (compiler or library) that fixes
the problem for real.
Hope it helps---
"Victor A. Wagner, Jr." <vawjr@rudbek.com> wrote in message news:
> using an fresh update from the CVS
> I can barely get anything to compile.  Actually I don't know if anything IS
> compiling.
> I get over 1000 errors like this when I run the jamfile in the status directory
> C:\Projects\boost\boost\numeric\ublas\matrix_proxy.hpp(4945) : error C2027:
> use of undefined type 'boost::numeric::ublas::matrix_indirect<M,IA>::iterator2'
> it seems that EVERY error mentions ::iterator2 or ::const_iterator2
> I don't know when this started happening.
> Victor A. Wagner Jr.      http://rudbek.com
> The five most dangerous words in the English language:
>                "There oughta be a law"
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.