“boost”: 不是类或命名空间名称

时间:2022-09-08 09:16:46
boost已经安装了。
但是调用boost::regex_match

还是“boost”: 不是类或命名空间名称
也在头文件上边加了 
using namespace boost;
还是不行啊。

6 个解决方案

#1


把 #include "stdafx.h" 放在最前面

#2


#include regex_match对于的头文件了吗 boost include目录 lib目录正确配置到ide里吗

#3


在上边引入 #include"boost/regex.hpp"

后,报错变为如下:
:\yf\lib\webanalyer\htmltostruct.h(406) : error C2872: “exception”: 不明确的符号
1>        可能是“d:\库\boost_1_46_1\boost\exception\exception.hpp(194) : boost::exception”
1>        或       “d:\program files\microsoft visual studio 9.0\vc\include\exception(95) : std::exception”

#4


错误信息解释如下
错误消息
“symbol”: 不明确的符号


编译器无法确定要引用哪个符号。

如果头文件包含 using Directive (C++),并且后续的头文件已使用 #include 并包含一个也位于 using 指令中指定的命名空间中的类型,则会出现 C2872 错误。仅在使用 #include 指定所有头文件后,才能指定 using 指令。

有关 C2872 的更多信息,请参见 http://support.microsoft.com/default.aspx?scid=kb;en-us;316317。

下面的示例生成 C2872:

  复制代码 
// C2872.cpp
namespace A {
   int i;
}

using namespace A;
int i;
int main() {
   ::i++;   // ok
   A::i++;   // ok
   i++;   // C2872 ::i or A::i?
}
 

#5


Project Settings->C/C++
Additional include directories:(附加包含目录)
增加:BOOST所在目录(d:\库\boost_1_46_1)

仅供参考

#6


引用 3 楼 devilkillzzz 的回复:
在上边引入 #include"boost/regex.hpp"

后,报错变为如下:
:\yf\lib\webanalyer\htmltostruct.h(406) : error C2872: “exception”: 不明确的符号
1> 可能是“d:\库\boost_1_46_1\boost\exception\exception.hpp(194) : boost::exception……

别using namespace boost;
然后boost::regex_match用

#1


把 #include "stdafx.h" 放在最前面

#2


#include regex_match对于的头文件了吗 boost include目录 lib目录正确配置到ide里吗

#3


在上边引入 #include"boost/regex.hpp"

后,报错变为如下:
:\yf\lib\webanalyer\htmltostruct.h(406) : error C2872: “exception”: 不明确的符号
1>        可能是“d:\库\boost_1_46_1\boost\exception\exception.hpp(194) : boost::exception”
1>        或       “d:\program files\microsoft visual studio 9.0\vc\include\exception(95) : std::exception”

#4


错误信息解释如下
错误消息
“symbol”: 不明确的符号


编译器无法确定要引用哪个符号。

如果头文件包含 using Directive (C++),并且后续的头文件已使用 #include 并包含一个也位于 using 指令中指定的命名空间中的类型,则会出现 C2872 错误。仅在使用 #include 指定所有头文件后,才能指定 using 指令。

有关 C2872 的更多信息,请参见 http://support.microsoft.com/default.aspx?scid=kb;en-us;316317。

下面的示例生成 C2872:

  复制代码 
// C2872.cpp
namespace A {
   int i;
}

using namespace A;
int i;
int main() {
   ::i++;   // ok
   A::i++;   // ok
   i++;   // C2872 ::i or A::i?
}
 

#5


Project Settings->C/C++
Additional include directories:(附加包含目录)
增加:BOOST所在目录(d:\库\boost_1_46_1)

仅供参考

#6


引用 3 楼 devilkillzzz 的回复:
在上边引入 #include"boost/regex.hpp"

后,报错变为如下:
:\yf\lib\webanalyer\htmltostruct.h(406) : error C2872: “exception”: 不明确的符号
1> 可能是“d:\库\boost_1_46_1\boost\exception\exception.hpp(194) : boost::exception……

别using namespace boost;
然后boost::regex_match用