Hello,
I'm having problems with strings.hpp. Class String is now
(last few 0.60) declared as:
class String : public OStream
In previous versions (0.50.5) it is:
class String : public std::string, public OStream
This means that previously a call to operator== was serviced
by the std::sting class but now there is no operator defined
within the class. Running a simple test program[1] through
ddd shows that gcc will implicitly type cast to a ParmString
then call operator==(ParmString s1, const char * s2).
Although by reading the comments I can see that this will give
the desire result I can't see from the coding why it should be.
It's also inefficient, even inlined. More importantly the Sun
Forte compiler (Sun 1 Studio 8) doesn't assume the type cast
to ParmString. If I provide the operator== methods in
string.hpp the Sun CC works but g++ finds an ambiguity.
Can the String classes be rationalised? Why isn't the
std::string class used? Why don't the other string classes
inherit from String?
James Lee.
Note 1. Simple test program:
#include <string.hpp>
int
main(
int argc,
char argv[])
{
acommon::String aaa = "aaa";
if (aaa == "bbb") {
exit(1);
}
exit(0);
}
_______________________________________________
Aspell-devel mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/aspell-devel