Boost logo

Boost Users :

From: Daryle Walker (darylew_at_[hidden])
Date: 2005-01-03 09:18:31

On 12/31/04 9:15 AM, "Alexey Bakhvalov" <bakhvalov_at_[hidden]> wrote:

> I have a problem when I try to include "boost/format.hpp" from Boost 1.32 in
> a project that uses STLPort library.
> I am using MSVC 7.1 and the compiler prints the following error:
> \boost\format\format_implementation.hpp(216) : error C2244:
> 'boost::basic_format<Ch,Tr,Alloc>::size' : unable to match function
> definition to an existing declaration
> \boost\format\format_class.hpp(58) : see declaration of
> 'boost::basic_format<Ch,Tr,Alloc>::size'
> definition
> 'basic_format<Ch,Tr,Alloc>::size_type
> boost::basic_format<Ch,Tr,Alloc>::size(void) const'
> existing declarations
> 'boost::basic_format<Ch,Tr,Alloc>::size_type
> boost::basic_format<Ch,Tr,Alloc>::size(void) const'
> If I switch back to Boost 1.31 or don't use STLPort then the problem goes
> away.
> I just wonder what can be the cause of such strange error because I can't
> see any difference between function's definition and declaration. Also I use
> many other Boost libraries and don't have this problem with either of them.

I see one difference. It's in the return type of the definition vs. the
declaration. The declaration uses "boost::basic_format< Ch, Tr, Alloc
>::size_type" while the definition's return type doesn't have the "boost::"
namespace prefix. I haven't looked at the source of Format, so I don't know
where the difference comes from, or why it's fatal. Maybe it's lookup
problems. Maybe STLPort actually has an item named "basic_format"?

Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at