gpt4 book ai didi

c++ - 添加包含导致编译错误

转载 作者:行者123 更新时间:2023-11-27 22:30:00 25 4
gpt4 key购买 nike

在 Windows XP 上使用 Visual Studio 2005 编译。我将以下 header 添加到我的“stdafx.h”文件中,如下所示:

#include <atlbase.h>
#include <atlcom.h>
#include <atlcore.h>
#include <atlstr.h>

(从技术上讲,仅包含 atlbase.h 会出现相同的错误)会产生以下错误:

error C2334: unexpected token(s) preceding '{'; skipping apparent function body    
error C2062: type 'double' unexpected

在下面的代码中:

struct CheckValue : public unary_function<pair<MetID,double>,void>{
CheckValue(double _expected) : m_Expected(_expected){}

inline void operator()(const pair<MetID,double> &_val){
m_CheckList.push_back( near( _val.second ) ? 0 : 1 );
}
inline bool near(double _val){ //here is location of both errors
return ( m_Expected - m_Epsilon < _val ) || ( _val < m_Expected + m_Epsilon );
}

const static double m_Epsilon;
const double m_Expected;
list<int> m_CheckList;
};
const double CheckValue::m_Epsilon = 0.00001;

如果不添加这些行,就没有问题。任何人都想冒险猜测为什么?我在这里抓耳挠腮,没有这些包含文件就无法继续编写单元测试。

最佳答案

通过预处理器运行它,看看你得到了什么。也许 near 被定义为某个东西,或者某个类似的问题。 (没有行号很难说)

(我相信/E 或/EP 是正确的开关,但您也可以在单个文件的 VS GUI 选项中找到它......)

关于c++ - 添加包含导致编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com