There's a linking error when I use std::basic_string<unsigned char> with g++ 3.3, but it works perfectly in g++ 3.4 and 4.0 . I've tried it on both my Debian box with g++-3.3 and another with 5.3-RELEASE-p5 and g++32. Both of the cases cause the same error message (http://victor.csie.org/tmp/error.txt).
Thanks. The following is my code. #include <string> int main(void) { std::basic_string<unsigned char> ustr; ustr.append(ustr); return 0; } Environment: System: Linux victor 2.6.11.10 #1 Thu May 19 21:13:08 CST 2005 i686 GNU/Linux Architecture: i686 host: i486-pc-linux-gnu build: i486-pc-linux-gnu target: i486-pc-linux-gnu configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux How-To-Repeat: Just compile it with g++ 3.3 -- Summary: linking error of basic_string<unsigned char> Product: gcc Version: 3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: victor at csie dot org CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i486-pc-linux-gnu GCC host triplet: i486-pc-linux-gnu GCC target triplet: i486-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21974