Hi folks,

If I try to compile the follwoing code sample with MSVCP6.0

#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/dom/deprecated/DOMString.hpp>

#include <list>

int main(int argC, char* argV[])
{
  xercesc::XMLPlatformUtils::Initialize();
  {
    xercesc::DOMString o("smolerebroed");
    std::list<xercesc::DOMString> oList;
    oList.push_back(o);
  };

  xercesc::XMLPlatformUtils::Terminate();
  return 0;
};


I get the following error (sorry, only in german):


C:\Programme\Microsoft Visual Studio\VC98\INCLUDE\xmemory(34) : error C2665: 'new' : Durch keine der 2 Ueberladungen kann Parameter 2 vom Typ 'void *' konvertiert werden
C:\Programme\Microsoft Visual Studio\VC98\INCLUDE\xmemory(66) : Siehe Verweis auf Instantiierung der kompilierten Funktionsvorlage 'void __cdecl std::_Construct(class xercesc_2_3::DOMString *,const class xercesc_2_3::DOMString &)'



This is because my <xmemory>-include states:


template<class _T1, class _T2> inline
void _Construct(_T1 _FARQ *_P, const _T2& _V)
{new ((void _FARQ *)_P) _T1(_V); }

Please note the second void* argument _P of the new operator.

The default operator new in <new> implements this as

inline void *__cdecl operator new(size_t, void *_P)
        {return (_P); }

The XMemeory interface of DOMString does not have such a new operator (used by the push_back).

If I define and implement them in xercesc XMemory interface
...
    void* operator new(size_t size, void* driss) { return driss; }
    void operator delete(void* p, void* driss) { };
...

Everything works fine. Does anybody have this problem, too? Am I the only fool using the deprecated Xerces-C DOMString and MSVC-STL together?

HolgeR
--
holger floerke                      d  o  c  t  r  o  n  i  c
email [EMAIL PROTECTED]          information publishing + retrieval
phone +49 2222 9292 90              http://www.doctronic.de



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to