This is the mail archive of the mailing list for the libstdc++ project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: char_traits patch, round two

Andreas Jaeger <> writes:

| Benjamin Kosnik <> writes:
| > ..still pending. There are some issues left to resolve: hopefully
| > these will fall into place after a good nights sleep...
| Since this patch is on the gcc 3.2 branch, I get now errors like:
| ../src/.libs/ undefined reference to `std::char_traits<unsigned char>::move(unsigned char*, unsigned char const*, unsigned long)'

Weird.  Where is that symbol referenced from?

| > 2002-07-28  Benjamin Kosnik  <>
| >             Gabriel Dos Reis  <>
| >
| > 	XXX char_traits vs. other _traits
| > 	XXX money_ bits
| > 	XXX num_get/num_put bits
| > 	XXX testsuites
| > 	* include/bits/char_traits.h: Remove generic definitions.
| [...]
| The final ChangeLog contains:
|        * testsuite/21_strings/ Add char_traits specializations.
| Do I need to add those specializations now everywhere? 

For anything other than char or wchar_t, the pedantical answer is
yes.  Furtermore, if the template-argument value for charT is not a
user-defined-type, then pedantically speaking you can't add a
specialization for char_traits<> in std:: -- which basically makes
char_traits<> useless in its current form, but I guess that is another
debate. However, I suspect GCC won't reformat your hard drive just
because you added the specialization char_traits<unsigned char> in
std:: :-). 

|  What's the right way to fix this problem?

I'm curious: How did you manage to reference std::char_traits<unsigned
char>::move()?  I'm asking that because, depending on the context you
would have to specialize other things as well...

-- Gaby

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]