MFC and STL one always has to be carefull of #include placements. It can happen when you place includes for header files that use STL after MFC's macros that override operator 'new'
For example, suppose you have a class CMyClass that uses STL and it has corresponding myclass.h file. Suppose also you have a MFC file (somemfc.cpp) that uses CMyClass. You need to make sure you put
#include "myclass.h" BEFORE #define new DEBUG_NEW statements! For example code below will compile OK:
#include "myclass.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif