You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2006/03/03 22:22:39 UTC

[jira] Created: (STDCXX-160) ambiguity on operator+ (fpos, streamoff) in filebuf::sync()

ambiguity on operator+ (fpos, streamoff) in filebuf::sync()
-----------------------------------------------------------

         Key: STDCXX-160
         URL: http://issues.apache.org/jira/browse/STDCXX-160
     Project: C++ Standard Library
        Type: Bug
  Components: 27. Input/Output  
    Versions: 4.1.3    
 Environment: all
    Reporter: Martin Sebor
 Assigned to: Martin Sebor 
    Priority: Minor
     Fix For: 4.1.4


The program below fails to compile on Solaris:

$ cat t.cpp && make t
#include <fstream>

struct Traits: std::char_traits<char>
{
    typedef long off_type;
};

int main ()
{
    std::basic_filebuf<char, Traits> fb;
}
gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG   -pthreads -D_RWSTD_USE_CONFIG -I/build/sebor/gcc-4.0.2-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/../rwtest -I/build/sebor/dev/stdlib/../rwtest/include -I/build/sebor/dev/stdlib/tests/include  -pedantic -nostdinc++ -g  -W -Wall -Wextra -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long  t.cpp
/build/sebor/dev/stdlib/include/fstream.cc: In member function `std::basic_streambuf<_CharT, _Traits>* std::basic_filebuf<_CharT, _Traits>::setbuf(_CharT*, std::streamsize) [with _CharT = char, _Traits = Traits]':
/build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
t.cpp:10:   instantiated from here
/build/sebor/dev/stdlib/include/fstream.cc:524: warning: comparison between signed and unsigned integer expressions
/build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
t.cpp:10:   instantiated from here
/build/sebor/dev/stdlib/include/fstream.cc:538: warning: comparison between signed and unsigned integer expressions
/build/sebor/dev/stdlib/include/fstream.cc: In member function `int std::basic_filebuf<_CharT, _Traits>::sync() [with _CharT = char, _Traits = Traits]':
/build/sebor/dev/stdlib/include/fstream.cc:517:   instantiated from `std::basic_streambuf<_CharT, _Traits>* std::basic_filebuf<_CharT, _Traits>::setbuf(_CharT*, std::streamsize) [with _CharT = char, _Traits = Traits]'
/build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
t.cpp:10:   instantiated from here
/build/sebor/dev/stdlib/include/fstream.cc:696: warning: comparison between signed and unsigned integer expressions
/build/sebor/dev/stdlib/include/fstream.cc:517:   instantiated from `std::basic_streambuf<_CharT, _Traits>* std::basic_filebuf<_CharT, _Traits>::setbuf(_CharT*, std::streamsize) [with _CharT = char, _Traits = Traits]'
/build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
t.cpp:10:   instantiated from here
/build/sebor/dev/stdlib/include/fstream.cc:764: error: ambiguous overload for 'operator+' in '((std::basic_filebuf<char, Traits>*)this)->std::basic_filebuf<char, Traits>::_C_beg_pos + __ext_chars'
/build/sebor/dev/stdlib/include/fstream.cc:764: note: candidates are: operator+(int, long int) <built-in>
/build/sebor/dev/stdlib/include/rw/_traits.h:256: note:                 std::fpos<_StateT> std::fpos<_StateT>::operator+(int) const [with _StateT = __mbstate_t]
/build/sebor/dev/stdlib/include/fstream.cc: In member function `typename std::basic_filebuf<_CharT, _Traits>::int_type std::basic_filebuf<_CharT, _Traits>::underflow() [with _CharT = char, _Traits = Traits]':
t.cpp:10:   instantiated from here
/build/sebor/dev/stdlib/include/fstream.cc:169: warning: comparison between signed and unsigned integer expressions
make: *** [t.o] Error 1


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (STDCXX-160) ambiguity on operator+ (fpos, streamoff) in filebuf::sync()

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/STDCXX-160?page=all ]
     
Martin Sebor resolved STDCXX-160:
---------------------------------

    Resolution: Fixed

Fixed with the referenced change.

> ambiguity on operator+ (fpos, streamoff) in filebuf::sync()
> -----------------------------------------------------------
>
>          Key: STDCXX-160
>          URL: http://issues.apache.org/jira/browse/STDCXX-160
>      Project: C++ Standard Library
>         Type: Bug
>   Components: 27. Input/Output
>     Versions: 4.1.3
>  Environment: all
>     Reporter: Martin Sebor
>     Assignee: Martin Sebor
>     Priority: Minor
>      Fix For: 4.1.4

>
> The program below fails to compile on Solaris:
> $ cat t.cpp && make t
> #include <fstream>
> struct Traits: std::char_traits<char>
> {
>     typedef long off_type;
> };
> int main ()
> {
>     std::basic_filebuf<char, Traits> fb;
> }
> gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG   -pthreads -D_RWSTD_USE_CONFIG -I/build/sebor/gcc-4.0.2-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/../rwtest -I/build/sebor/dev/stdlib/../rwtest/include -I/build/sebor/dev/stdlib/tests/include  -pedantic -nostdinc++ -g  -W -Wall -Wextra -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long  t.cpp
> /build/sebor/dev/stdlib/include/fstream.cc: In member function `std::basic_streambuf<_CharT, _Traits>* std::basic_filebuf<_CharT, _Traits>::setbuf(_CharT*, std::streamsize) [with _CharT = char, _Traits = Traits]':
> /build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
> t.cpp:10:   instantiated from here
> /build/sebor/dev/stdlib/include/fstream.cc:524: warning: comparison between signed and unsigned integer expressions
> /build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
> t.cpp:10:   instantiated from here
> /build/sebor/dev/stdlib/include/fstream.cc:538: warning: comparison between signed and unsigned integer expressions
> /build/sebor/dev/stdlib/include/fstream.cc: In member function `int std::basic_filebuf<_CharT, _Traits>::sync() [with _CharT = char, _Traits = Traits]':
> /build/sebor/dev/stdlib/include/fstream.cc:517:   instantiated from `std::basic_streambuf<_CharT, _Traits>* std::basic_filebuf<_CharT, _Traits>::setbuf(_CharT*, std::streamsize) [with _CharT = char, _Traits = Traits]'
> /build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
> t.cpp:10:   instantiated from here
> /build/sebor/dev/stdlib/include/fstream.cc:696: warning: comparison between signed and unsigned integer expressions
> /build/sebor/dev/stdlib/include/fstream.cc:517:   instantiated from `std::basic_streambuf<_CharT, _Traits>* std::basic_filebuf<_CharT, _Traits>::setbuf(_CharT*, std::streamsize) [with _CharT = char, _Traits = Traits]'
> /build/sebor/dev/stdlib/include/fstream:109:   instantiated from `std::basic_filebuf<_CharT, _Traits>::basic_filebuf() [with _CharT = char, _Traits = Traits]'
> t.cpp:10:   instantiated from here
> /build/sebor/dev/stdlib/include/fstream.cc:764: error: ambiguous overload for 'operator+' in '((std::basic_filebuf<char, Traits>*)this)->std::basic_filebuf<char, Traits>::_C_beg_pos + __ext_chars'
> /build/sebor/dev/stdlib/include/fstream.cc:764: note: candidates are: operator+(int, long int) <built-in>
> /build/sebor/dev/stdlib/include/rw/_traits.h:256: note:                 std::fpos<_StateT> std::fpos<_StateT>::operator+(int) const [with _StateT = __mbstate_t]
> /build/sebor/dev/stdlib/include/fstream.cc: In member function `typename std::basic_filebuf<_CharT, _Traits>::int_type std::basic_filebuf<_CharT, _Traits>::underflow() [with _CharT = char, _Traits = Traits]':
> t.cpp:10:   instantiated from here
> /build/sebor/dev/stdlib/include/fstream.cc:169: warning: comparison between signed and unsigned integer expressions
> make: *** [t.o] Error 1

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira