摘要:
遇到一个古怪的问题,在我的一个程序中一旦#include <fstream>就报文件fstream有语法错误,什么丢失分号之类的。后来发现程序里有一行#define close(s) shutdown(s, SD_BOTH),原来这把fstream里的close改了。这是一个不好的宏定义,极易导致问题,但程序较大,因此也只是把这个宏定义移到#include <fstream>的后面,算是暂时解决了问题。如果在成熟的库中报编译错误,应该检查一下前面代码的宏定义。 阅读全文