VS2008错误提示
error C2236: unexpected ‘class’ ‘SkyCloudParticle’. Did you forget a ‘;’?
这是一个令人郁闷的错误提示,提示停在:
class SkyCloudParticle
{ // << HERE
};
分析
怀疑是包含的头文件的类定义有问题,但检查后一切正常。后来终于想到可能是在其它地方 include 这个头文件时,前面的头文件中有 class 定义没写好。经查看所有头类定义,终于发现了问题。问题出现在另一个类(SkyCloudsManager)的定义上,包括关系如下:
// file: SkyCloudsManager.cpp
#include "SkyCloudsManager.hpp"
#include "SkyCloud.hpp"
// file: SkyCloud.hpp
#include "SkyCloudParticle.hpp"
// file: SkyCloudsManager.hpp
class SkyCloudsManager
{
} << DEFINITION ERROR
总结
冷静思考!
PREVIOUSMSVC环境下的template编译[纠正]