Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2002-12-20 17:39:56


Beman Dawes <bdawes_at_[hidden]> writes:

> At 03:21 PM 12/20/2002, Samuel Krempp wrote:
>
> >At least in my case, codewarrior is to blame for the new failure :
> >
> ># 'getloc' is not a member of class 'std::basic_stringbuf<char,
> >std::char_traits<char>, std::allocator<char>>'
> >
> >while a basic_stringbuf should inherit getloc from its basic_streambuf
> >base.
>
> Be careful. Remember that Metrowerks is the only Win32 compiler that
> diagnoses two-phase lookup errors correctly. And that is exactly the
> symptom (in a template, works on other compilers, but Metrowerks can't
> find the symbol) of two-phase lookup errors.
>
> While Dave and others have explained two-phase lookup to the point I
> have some understanding, and can fix simpler errors, this one is
> beyond me.

This one doesn't look like a two-phase lookup issue. All names
involved in the error are qualified. In particular, 'getloc' is
preceded by '->'.

I'm guessing that something is wrong with the build or the toolset.

> The full error message is given below in case others would like to
> hazard an opinion.
>
> --Beman
>
> ### mwcc Compiler:
> # In: ..\boost\format\parsing.hpp
> # From: ..\libs\format\test\format_test2.cpp
> # ---------------------------------------------
> # 371: while(i1 < buf.size() &&
> isdigit(buf[i1],oss_.rdbuf()->getloc())) ++i1;
> # Error: ^
> # 'getloc' is not a member of class 'std::basic_stringbuf<char,
> std::char_traits<char>, std::allocator<char>>'
> # (instantiating: 'boost::basic_format<char,
> std::char_traits<char>>::parse(const std::basic_string<char,
> std::char_traits<char>, std::allocator<char>> &)')

-- 
                       David Abrahams
   dave_at_[hidden] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk