今天发现一个错误在编译一个类似于
DWORD test(void *list);
出现错误,错误竟然是和std::list冲突,吐血。我不能确认这是C++语义的问题还是VC6太土了,但这个问题需要集中避免,我不知道什么会导致这么夸张地问题,结果我找了好些文件。在某个头文件中,发现了using namespace std; 我想它一定难辞其咎。结果我把这一行注释掉,就发现一切OK。
所以,这一教训告诫我,不要轻易在.h中打开namespace,这极易导致可怕的污染问题。