나는 커다란 (백만 줄) VC++ 프로젝트를 가지고 있으며 프로젝트 내에서 PPL (Parallel Patterns Library)을 사용하기를 원합니다. 이 프로젝트는 사용자 정의 전역 연산자 new 및 연산자 delete 함수를 구현합니다. 문제 (디버그 빌드) PPL은 (size_t와 CB를, CONST CHAR * szFileName, INT의 nLine nBlockUse를 INT) 자체연산자를 사용하여 PPL 사용하기 새로 바꾸기
공극 * 연산자 새로운 []를 사용
그런데 그것을 역 할당하는 것이다 , 내 연산자 delete (void *)가 호출되고 메모리 레이아웃이 완전히 다르므로이 방법이 작동하지 않습니다.
제 질문은 전역 새 및 삭제 연산자를 버리지 않고 디버그 빌드에서 PPL을 사용하는 방법이 있는지 여부입니다. 이 글로벌 새로운 & 삭제 우선 적용이 필요한 좋은 이유가 있습니다. 현재이 옵션을 내 프로젝트에서 제거 할 수 없습니다.
미안 해요, 내가해야 내가 VS2013을 사용하고 있다고 언급했다. 제가 가 무효 * __cdecl 조작자가 새로운 [( 가 CONST 크기 size_t가, INT의 CONST의 block_use가 숯 CONST *이 file_name은, LINE_NUMBER INT의 CONST)이 링커 LIBCMTD보고 재정의 할 때. lib (dbgnew.obj) : 오류 LNK2005 : UDMemory.obj에 이미 정의 된 "void * __cdecl 연산자 new [] (부호없는 __int64, int, char const *, int)"(?? _ U @ YAPEAX_KHPEBDH @ Z) /FORCE : 다중 링커 옵션으로도 문제가 해결되지 않습니다. –