Hello,
I'm experiencing a linking problem when compiling root source code and the Standard Template Library (STL) deque. Apparently the operator::new in NEW_NewDelete.cpp and the operator::new in the STL memory.h both exists in global namespaces. Removal of NEW_NewDelete.cpp from the project doesn't solve the problem because the STL operator::new causes ROOT to crash when creating a TCanvas.
// linking error
"void * __cdecl operator new(unsigned int,void *)" (??2@YAPAXIPAX@Z) already defined in rootDoc.obj
Is there a way of employing namespaces to illiminate this linking error? And if so, how would I approach this problem? I'm not that familiar with namespaces. Background: root version 1.03/09. compiling by MS v5.0 visual C++, platform WinNT 4.0 w/sp 3.
Thanks again for all your help, past, present and future!
William J Deninger
//_____________________________________
// example class header
#include <deque>
class CRootDoc
{
protected: // create from serialization only
CRootDoc();
public:
std::deque<int> mydeque;
};
//______________________________________
// implementation file
CRootDoc::CRootDoc()
{
mydeque.push_back(1);
}
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:30 MET