错误:'数组':模糊符号

时间:2016-04-28 13:32:36

标签: c++ boost

我想使用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库

时会出现此错误

任何想法?

2 个答案:

答案 0 :(得分:10)

boost::arraystd::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::arraystd::array之间的差异很小。如果您使用的是C ++ 11,则应考虑使用std::array而不是boost::array

答案 1 :(得分:0)

在数组之前添加core :: 所以core :: array