我想使用boost数组
但是我收到了这个错误:
错误:'数组':模糊符号
这是我的代码:
#include <iostream>
#include <boost/array.hpp>
#include <boost/regex.hpp>
using namespace boost;
using namespace std;
int main(int argc, char* argv[])
{
array<int, 10> a{3};
cout << "a[0]= " << a[0];
return 0;
}
当我包含boost库
时会出现此错误任何想法?
答案 0 :(得分:10)
boost::array
和std::array
不明确,因为它们的作用域不同。
当你这样做时:
using namespace boost;
using namespace std;
您告诉编译器在这两个命名空间中查找符号。但是,当您输入array
时,编译器现在不知道您正在谈论哪个array
。它可能是boost::array
,也可能是std::array
,因此不明确。
您可以通过删除using namespace std;
或指定使用boost::array
而非array
来使用Boost版本来解决此问题。
顺便提一下,我理解尝试学习Boost功能,但您不应该费心学习boost::array
,它正好在the Introduction to boost::array
中告诉您:
std::array
(从C ++ 11开始)是C ++标准的一部分。boost::array
和std::array
之间的差异很小。如果您使用的是C ++ 11,则应考虑使用std::array
而不是boost::array
。
答案 1 :(得分:0)
在数组之前添加core :: 所以core :: array