我有一个非常简单的程序如下:
#include<string>
using namespace std;
int count=10;
int main(int argc,char*argv[]){
for(int i=0;i<count;++i)
;
return 0;
}
我在mac上使用clang编译它,我收到错误:
test.cpp:5:19: error: reference to 'count' is ambiguous
for(int i=0;i<count;++i)
^
test.cpp:3:5: note: candidate found by name lookup is 'count'
int count=10;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:1112:1: note:
candidate found by name lookup is 'std::__1::count'
count(_InputIterator __first, _InputIterator __last, const _Tp& __value_)
^
1 error generated.
多么奇怪,伯爵在范围内&#34; std :: __ 1&#34;,但似乎混淆了&#34; std&#34;。这是clang编译器的命名空间泄漏错误吗?我在linux上尝试使用gcc一样,没有这样的问题。
有任何解释吗?