The DOMString(int) constructor is used in at least AttrImpl::getValue().

I agree it should be changed, I'd recommend replacing its functionality with
a reserve(int) method ala std::basic_string.reserve().


-----------

I also ran into some curious code in this routine.

DOMString AttrImpl::toString()
{
    DOMString retString;
    
    retString.appendData(name);
    retString.appendData(DOMString("=\""));
    retString.appendData(getValue());
    retString.appendData(DOMString("\""));
    return retString;
}

It would seem to require two unnecessary DOMString constructors and
transcoding.  There was a discussion about adding a _XSTR macro, on most
platforms defined as

#define _XSTR(str) L ## str

to whereever XMLCh is defined, wouldn't this be much better as

DOMString AttrImpl::toString()
{
    DOMString retString;
    
    retString.appendData(name);
    retString.appendData(_XSTR("=\""));
    retString.appendData(getValue());
    retString.appendData(_XSTR("\""));
    return retString;
}

It is just a curious piece of code and if there is a specific reason it was
done this way, I'd like to be enlightened.

---------------

I've just started trying trying to identify issues to morphing DOMString
into std::basic_string semantics.  I'm running into a little wacky behavior
in the VC6 IDE build that maybe someone will recognize off the top of their
head.  I'm using the 1_0_1 drop, debug build, on VC 6 SP2.  If I add a file
to the XercesLib subproject (test.cpp) that is simply

#include <string>
std::basic_string<char> test;

And build in the IDE, I get a slew a error messages starting with

d:\msdev6\vc98\include\utility(81) : error C2146: syntax error : missing ';'
before identifier 'iterator_category'
        d:\msdev6\vc98\include\utility(84) : see reference to class template
instantiation 'std::iterator_traits<_It>' being compiled

If I try to mimic the same configuration on cl, I get no compile error
problem.  And I can build the file in a new project.  My guess is there is
some compiler switch that is needed for STL, that is switched off, but I'm
baffled.

Reply via email to