[ 
http://issues.apache.org/jira/browse/XERCESC-1380?page=comments#action_61252 ]
     
Maciek Samsel commented on XERCESC-1380:
----------------------------------------

"A declaration of a placement deallocation function matches the declaration of 
a placement allocation function if it has the same number of parameters and, 
after parameter transformations (8.3.5), all parameter types except the first 
are identical. Any nonplacement
deallocation function matches a nonplacement allocation function. If the lookup 
finds a single matching deallocation function, that function will be called; 
otherwise, no deallocation function will be called."

> The check could be as follows:
>
> #if !defined(XML_BORLAND) && !defined(NO_DELETE_OVERLOAD)
> ...
> #endif

>Yes, the code could be more portable for older, non-compliant >compilers.


Non-compliant? Are quoting a new, revised requirements or old ones. Do you 
suggest that SPARCompiler 4.2 was not compliant with C++ specs of its days? 
That would be harsh suggestion and I would suggest caution since most of C++ 
commercial stuff on Solaris for years was developed with one of SPARCompiler's.
What are you going to do when new C++ extensions will appear? Are you going to 
give the same feedback voiding previous compliance and stopping to help with 
support for number of older compilers?
I thought that Xerces wanted some subset of C++... otherwise why don't you use 
STL and generic programming rather than those custom and rather obsolete types 
and techniques these days.

> FYI, the code compiles just fine without operator.

>But does it exhibit the correct run-time behavior?

Do you offer any test suite/unit tests for Xerces? Usually, they are part of a 
project these days... well at least in Java JUnit is used extensively.

To tell you truth I would assume that it does as a logical conclusion. Since 
compiler complains (error) about unknown compiler then it does not intend to 
use it. Am I correct or is these unclear?
By the way, I believe that saw two placement delete operators defined in the 
same file. One was accepted by the compiler.


> Unneccessary definition of extra delete operator causes compiler error
> ----------------------------------------------------------------------
>
>          Key: XERCESC-1380
>          URL: http://issues.apache.org/jira/browse/XERCESC-1380
>      Project: Xerces-C++
>         Type: Bug
>     Versions: 2.6.0
>  Environment: Solaris 2.8 with compiler SPARCompiler 4.2
>     Reporter: Maciek Samsel

>
> So anyway why do you need to define that extra delete operator?:
>      //The Borland compiler is complaining about duplicate overloading of 
> delete
> #if !defined(XML_BORLAND)
>     /**
>       * This method provides a matching delete for the placement new
>       *
>       * @param p      The pointer to the allocated memory
>       * @param memMgr An application's memory manager
>       */
>     void operator delete(void* p, MemoryManager* memMgr);
> #endif
> SPARCompiler 4.2 (as probably a few others) does not recognize that operator 
> as valid and report an error.
> Please make appropriate macro declarations (not only for Borland as it is 
> now) in platform specific files as well as conditional generation check in 
> files:
> xerces-c-src_2_6_0/src/xercesc/util/XMemory.hpp
> xerces-c-src_2_6_0/src/xercesc/util/XMemory.cpp
> The check could be as follows:
> #if !defined(XML_BORLAND) && !defined(NO_DELETE_OVERLOAD)
> ...
> #endif
> FYI, the code compiles just fine without operator.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


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

Reply via email to