Boost logo

Boost :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2002-12-20 16:21:40

At 03:21 PM 12/20/2002, Samuel Krempp wrote:

>Checking today's boost.format regression results, there was new failures
>for the metrowerks compiler.
>Was it recently updated ? (now 8.3)

Yes, fairly recently. Also the new sane-testing version of testing.jam may
be reporting some errors that were not correctly reported in the past.

>I see boost.format is not the only lib for which the codewarrior
>regression status changed.
>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

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.

The full error message is given below in case others would like to hazard
an opinion.


### 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>> &)')

Boost list run by bdawes at, gregod at, cpdaniel at, john at