У меня есть проект с большим (миллионным) VC++ и хотел бы начать использовать PPL (Parallel Patterns Library) в рамках проекта. В проекте реализованы пользовательские глобальные операторы нового и операторские функции удаления. Проблема заключается в том, что PPL (в отладочных) использует свой собственныйИспользование PPL с новым переопределением оператора
аннулируются * Оператор новый [] (size_t Cb, INT nBlockUse, Const символ * szFileName, внутр nLine)
, но затем, когда он де-выделяет , мой оператор delete (void *) получает вызов, и поскольку макет памяти полностью отличается, это не работает.
Мой вопрос в том, есть ли способ использовать PPL в отладочной сборке, не отказываясь от моих глобальных новых и удаленных операторов. Есть веские причины для того, чтобы эти глобальные новые & исключить переопределения, и удаление их из моего проекта в данный момент не является вариантом.
К сожалению, я должен упомянул, что я использую VS2013. При попытке переопределить недействительный * __cdecl оператор новый [] ( size_t сопзИте размер, INT Const block_use, символ сопза * имя_файл, INT Const line_number ) компоновщик сообщает LIBCMTD. lib (dbgnew.obj): ошибка LNK2005: «void * __cdecl operator new [] (unsigned __int64, int, char const *, int)» (?? _ U @ YAPEAX_KHPEBDH @ Z), уже определенный в UDMemory.obj The/FORCE: MULTIPLE linker также не решает проблему. –