我特林使用升壓陣列錯誤: '數組':不明確的符號
,但我得到這個錯誤:
error: 'array': ambiguous symbol
這裏是我的代碼:
#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;
}
此錯誤當我包括提升庫時出現
有什麼想法嗎?
'array'被接受了入'std'。爲什麼你仍然在嘗試使用舊的'boost'版本?這裏是'使用名稱空間'的危險:現在你的兩個版本都在(概念性)全局符號空間中浮動。我相信這也適用於'正則表達式'。只需使用'std'版本,最好是完全限定的(不要使用「namespace」)。 –
我正在學習boost庫 – linuxD
因此,當您只是在與被接受到'std'中的庫所部分發生衝突時,停止使用'namespace'。因爲這樣你必須用'boost ::'或'std ::'作爲前綴來消除歧義,你可以也應該這樣做,而不必使用'namespace'直接輸入。 –