Subject: Re: pkgsrc IRIX64 6.5/mipseb bulk build results 2005-07-10
To: Jan Schaumann <jschauma@netmeister.org>
From: Roland Illig <rillig@NetBSD.org>
List: pkgsrc-bulk
Date: 07/14/2005 07:14:26
This is a multi-part message in MIME format.
--------------070303010503060605020507
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Jan Schaumann wrote:
> audio/id3lib                       10      tech-pkg@NetBSD.org

field.cpp, line 934:
 >     _binary.erase();

> cc-1282 CC: ERROR File = /usr/include/CC/string, Line = 785
>   More than one instance of overloaded function "min" matches the argument list.
> 
>             Function symbol function template "dami::min(const T &, const T &)"
>                       is ambiguous by inheritance.
>             Function symbol function template
>                       "std::min(const _Tp &, const _Tp &)" is ambiguous by
>                       inheritance.
>             The argument types are:  (std::basic_string<char,
>                       std::char_traits<char>,
>                       std::allocator<char>>::size_type, unsigned long).
>       erase(_M_start + __pos, _M_start + __pos + min(__n, size() - __pos));
>                                                  ^
>           detected during instantiation of "std::basic_string<char,
>                     std::char_traits<char>, std::allocator<char>>
>                     &std::basic_string<char, std::char_traits<char>,
>                     std::allocator<char>>::erase(std::basic_string<char,
>                     std::char_traits<char>, std::allocator<char>>::size_type,
>                     std::basic_string<char, std::char_traits<char>,
>                     std::allocator<char>>::size_type)" at line 943 of
>                     "field.cpp"
> 

What about this patch?

The erase<> function uses some (unqualified) min<>. Is there a way how 
to specify precedence of one of the namespaces? Like this:

     using namespace std {
         _binary.erase();
     };

Roland

--------------070303010503060605020507
Content-Type: text/plain;
 name="patch-ah"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="patch-ah"

$NetBSD$

On IRIX/mipseb there was a conflict between std::min<> and dami::min<>.

--- src/field.cpp.orig	Sun Mar  2 01:23:00 2003
+++ src/field.cpp	Thu Jul 14 07:07:06 2005
@@ -33,8 +33,6 @@
 #include "readers.h"
 #include <assert.h>
 
-using namespace dami;
-
 // This is used for unimplemented frames so that their data is preserved when
 // parsing and rendering
 static ID3_FieldDef ID3FD_Unimplemented[] =
@@ -1178,7 +1176,7 @@ bool ID3_FieldImpl::SetEncoding(ID3_Text
     (ID3TE_NONE < enc && enc < ID3TE_NUMENCODINGS);
   if (changed)
   {
-    _text = convert(_text, _enc, enc);
+    _text = dami::convert(_text, _enc, enc);
     _enc = enc;
     _changed = true;
   }

--------------070303010503060605020507--