std ::不需要在Macbook编译器上进行排序

时间:2019-06-17 20:18:18

标签: xcode c++11 stl std clang++

所以我今天才注意到,我不需要在Macbook上声明sort的名称空间。

以下代码编译器在我的Mac上,但在我的Linux工作站(使用香草g++)上却没有,

#include <iostream>
#include <ctime>
#include <vector>

int main()
{
  std::vector<int> vec{1,2,3};   //needs std:: to compile on both mac and linux
  sort(vec.begin(), vec.end());  //doesn't need std:: to compile on mac
}

这是我的g++编译器的信息,该编译器可以毫无问题地编译上述代码。

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

XCode是否在幕后做一些事情,使sort函数在不声明其名称空间的情况下可用?它在做什么,为什么要这样做呢?

0 个答案:

没有答案