Thread overview
B64 cpp code does not compile on Fedora 7/g++-4.1.2
Jul 11, 2008
Michael Coulman
Jul 19, 2008
Matthew
Jul 19, 2008
Michael Coulman
Aug 03, 2008
Matthew Wilson
Aug 03, 2008
Michael Coulman
Aug 11, 2008
Matthew Wilson
Aug 24, 2008
Matthew Wilson
July 11, 2008
$ make -f makefile.unix
g++ -D_DEBUG -UNDEBUG   -c      -Dunix -DB64_NO_IMPLICIT_LINK   -I../../include  -I"/opt/local/stlsoft/stlsoft-1.9.45/include"  -o example.cpp.1.debug.o ../../examples/cpp/example.cpp.1/example.cpp.1.cpp
/opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h: In function ‘stlsoft::ss_size_t stlsoft::c_str_size(const S&) [with S = std::basic_string<char, std::char_traits<char>, std::allocator<char> 
>]’:
../../include/b64/b64.hpp:648:   instantiated from here
/opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:854: error: no matching function for call to ‘c_str_len(const std::basic_string<char, std::char_traits<char>, std::allocator<char> 
>&)’
../../include/b64/b64.h:394: note: candidates are: size_t stlsoft::c_str_len(b64::B64_RC)
/opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:302: note:                 stlsoft::ss_size_t stlsoft::c_str_len(const stlsoft::ss_char_a_t*)
/opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:331: note:                 stlsoft::ss_size_t stlsoft::c_str_len(const stlsoft::ss_char_w_t*)
/opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:854: error: no matching function for call to ‘c_str_ptr(const std::basic_string<char, std::char_traits<char>, std::allocator<char> 
>&)’
../../include/b64/b64.h:403: note: candidates are: const char* stlsoft::c_str_ptr(b64::B64_RC)
/opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:427: note:                 const stlsoft::ss_char_a_t* stlsoft::c_str_ptr(const stlsoft::ss_char_a_t*)
/opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:454: note:                 const stlsoft::ss_char_w_t* stlsoft::c_str_ptr(const stlsoft::ss_char_w_t*)
make: *** [example.cpp.1.debug.o] Error 1

$ g++ -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20070925 (Red Hat 4.1.2-27)

~~~

I'd like to make use of the C++ flavor of B64, but it seems to be broken on Linux.

TIA.

July 19, 2008
Hi

Sorry for the radio silence. I will be in a position to investigate this in 3-4 days' time, and expect to be able to effect a fix and have you up and running within a day or so.

Cheers

Matt
July 19, 2008
On 2008-07-19 07:23:53 -1000, Matthew <no-one@nowhere.none.none> said:

> Sorry for the radio silence. I will be in a position to investigate this in 3-4 days' time, and expect to be able to effect a fix and have you up and running within a day or so.

Thanks! I appreciate both the reply and the commitment.

August 03, 2008
Apologies for the ongoing delays with this. I've just addressed a couple of other minor issues with the library -
http://www.digitalmars.com/webnews/newsgroups.php?art_group=c%2B%2B.stlsoft&article_id=1616 - and can now focus on this. Couple more
days at the most until we get a usable workaround; possibly another week for a full fix.

HTH

Matt

"Michael Coulman" <michael.coulman@mac.com> wrote in message news:g5tg9g$30qb$3@digitalmars.com...
> On 2008-07-19 07:23:53 -1000, Matthew <no-one@nowhere.none.none> said:
>
> > Sorry for the radio silence. I will be in a position to investigate this in 3-4 days' time, and expect to be able to effect a fix and have you up and running within a day or so.
>
> Thanks! I appreciate both the reply and the commitment.
>



August 03, 2008
On 2008-08-02 17:44:50 -1000, "Matthew Wilson" <matthew@hat.stlsoft.dot.org> said:

> Apologies for the ongoing delays with this. I've just addressed a couple of other minor issues with the library -
> http://www.digitalmars.com/webnews/newsgroups.php?art_group=c%2B%2B.stlsoft&article_id=1616 - and can now focus on this. Couple more
> days at the most until we get a usable workaround; possibly another week for a full fix.

OK. I'm keeping my eye on this thread for the work around and/or fix. TIA.

August 11, 2008
Still working on it ...

"Michael Coulman" <michael.coulman@mac.com> wrote in message news:g7510h$9nt$1@digitalmars.com...
> On 2008-08-02 17:44:50 -1000, "Matthew Wilson" <matthew@hat.stlsoft.dot.org> said:
>
> > Apologies for the ongoing delays with this. I've just addressed a
> > couple of other minor issues with the library -
> > http://www.digitalmars.com/webnews/newsgroups.php?art_group=c%2B%2B.stlsoft&article_id=1616
> > - and can now focus on this. Couple more
> > days at the most until we get a usable workaround; possibly another
> > week for a full fix.
>
> OK. I'm keeping my eye on this thread for the work around and/or fix. TIA.
>


August 24, 2008
I finally got to the bottom of this, and it's now resolved.

The problem is there's a subtle defect in GCC's lookup mechanism for resolving types in function template overloads.

The new version, 1.3.4 (http://synesis.com.au/software/b64.html), contains a workaround that's been tested on a bunch of different
compilers, including GCC 4.x versions on 32 and 64-bit Ubuntu.

Sorry it took so long ...

Matt


"Michael Coulman" <michael.coulman@mac.com> wrote in message news:g58a0i$1hbq$1@digitalmars.com...
> $ make -f makefile.unix
> g++ -D_DEBUG -UNDEBUG   -c      -Dunix -DB64_NO_IMPLICIT_LINK
> -I../../include  -I"/opt/local/stlsoft/stlsoft-1.9.45/include"  -o
> example.cpp.1.debug.o ../../examples/cpp/example.cpp.1/example.cpp.1.cpp
> /opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:
> In function 'stlsoft::ss_size_t stlsoft::c_str_size(const S&) [with S =
> std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >]':
> ../../include/b64/b64.hpp:648:   instantiated from here
> /opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:854:
> error: no matching function for call to 'c_str_len(const
> std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >&)'
> ../../include/b64/b64.h:394: note: candidates are: size_t
> stlsoft::c_str_len(b64::B64_RC)
> /opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:302:
> note:                 stlsoft::ss_size_t stlsoft::c_str_len(const
> stlsoft::ss_char_a_t*)
> /opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:331:
> note:                 stlsoft::ss_size_t stlsoft::c_str_len(const
> stlsoft::ss_char_w_t*)
> /opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:854:
> error: no matching function for call to 'c_str_ptr(const
> std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >&)'
> ../../include/b64/b64.h:403: note: candidates are: const char*
> stlsoft::c_str_ptr(b64::B64_RC)
> /opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:427:
> note:                 const stlsoft::ss_char_a_t*
> stlsoft::c_str_ptr(const stlsoft::ss_char_a_t*)
> /opt/local/stlsoft/stlsoft-1.9.45/include/stlsoft/shims/access/string/std/c_string.h:454:
> note:                 const stlsoft::ss_char_w_t*
> stlsoft::c_str_ptr(const stlsoft::ss_char_w_t*)
> make: *** [example.cpp.1.debug.o] Error 1
>
> $ g++ -v
> Using built-in specs.
> Target: i386-redhat-linux
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --enable-checking=release --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions
> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada
> --enable-java-awt=gtk --disable-dssi --enable-plugin
> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
> --enable-libgcj-multifile --enable-java-maintainer-mode
> --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-cpu=generic
> --host=i386-redhat-linux
> Thread model: posix
> gcc version 4.1.2 20070925 (Red Hat 4.1.2-27)
>
> ~~~
>
> I'd like to make use of the C++ flavor of B64, but it seems to be broken on Linux.
>
> TIA.
>