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