我想要使用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::array和std::array是最小的.如果您使用的是C++ 11,则应考虑使用std::array而不是boost::array.