我在把我们的C++代码从2008年VS2010移至VS2010时遇到了问题。 我迄今无法解释其原因,并将感谢您的帮助。
我们有一个习俗记忆分配器,它居住着一片。 在守则的其余部分,我们利用预处理器将拨款转用于我们的职能。 下面的简单法典在2008年版图中是正确的,但并不在2010年版面。
in:
#define free my_free
#include <string>
In VS2010 I get:
1>d:program filesmicrosoft visual studio 10.0vcincludexdebug(62): error C3861: free : identifier not found
参照:
template<class _Ty>
void __CLRCALL_OR_CDECL _DebugHeapDelete(_Ty *_Ptr)
{ // delete from the debug CRT heap even if operator delete exists
if (_Ptr != 0)
{ // worth deleting
_Ptr->~_Ty();
// delete as _NORMAL_BLOCK, not _CRT_BLOCK, since we might have
// facets allocated by normal new.
free(_Ptr);
任何帮助或想法都将受到高度赞赏。
Moshe