c ++:这是命令泄露的铿锵声吗?

时间:2017-04-12 01:36:27

标签: c++ namespaces std

我有一个非常简单的程序如下:

#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一样,没有这样的问题。

有任何解释吗?

0 个答案:

没有答案