错误:'array':模糊符号

lin*_*uxD -3 c++ boost

我想要使​​用boost数组

但是我收到了这个错误:

错误:'array':模糊符号

这是我的代码:

#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;
}
Run Code Online (Sandbox Code Playgroud)

当我包含boost库时会出现此错误

任何的想法 ?

Jon*_*Mee 10

boost::array并且std::array不含糊,因为它们由不同的命名空间限定.

当你这样做时:

using namespace boost;
using namespace std;
Run Code Online (Sandbox Code Playgroud)

您告诉编译器在这两个命名空间中查找符号.但是array当你输入时,编译器现在不知道你在说什么array.它可能是boost::array,也可能std::array是模糊的.

您可以通过删除using namespace std;或通过使用boost::array而不是仅使用指定您正在使用Boost版本来解决此问题array.


顺便提一下,我理解尝试学习Boost功能,但你不应该费心学习boost::array,就在它的简介中boost::array告诉你:

std::array是(从C++ 11开始)C++标准的一部分.之间的差异boost::arraystd::array是最小的.如果您使用的是C++ 11,则应考虑使用std::array而不是boost::array.