Subject: Re: chat/centericq-4.21.0 won't build on NetBSD/alpha 1.6.2_STABLE
To: Greg A. Woods <woods@weird.com>
From: David Maxwell <david@crlf.net>
List: tech-pkg
Date: 05/26/2006 15:30:50
> C++ boggles my mind.  Any idea what's up with this?

Woohoo. A C++ problem that _I_ can debug ;-)

> c++ -DHAVE_CONFIG_H -I. -I. -I.. -I../../connwrap -I../../connwrap-0.1    -O2 -mno-soft-float -mcpu=21164a -g -I/usr/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -c message.cpp
> message.cpp: In method `const class vector<int,allocator<int> > MSN::Message::getColor() const':
> message.cpp:121: call of overloaded `insert(unsigned int, long unsigned int, char)' is ambiguous
> /usr/include/g++/std/bastring.h:251: candidates are: class basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > & basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> >::insert(long unsigned int, long unsigned int, char)

It's making a call with args (unsigned int, long unsigned int, char).

The functions available take args:

1)
                            (long unsigned int, long unsigned int, char)

2) 
                            (char *, long unsigned int, char)

It's unwilling to promote the first arg to the type required by either
of those implementations of 'insert'. If it works fine on 32 bit
plaforms, then it's a matter of the difference between unsigned int vs.
(long unsigned int OR char *) on Alpha.

							David