CentOS 6.4 系統預設 GCC 4.4.7 不完全支援 C++11,本文記錄從源碼編譯安裝 GCC 4.8.2 的完整流程。
wget https://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gztar -xf gcc-4.8.2.tar.gzcd gcc-4.8.2 && ./contrib/download_prerequisitesmkdir gcc-build-4.8.2 && cd gcc-build-4.8.2../configure --enable-checking=release --enable-languages=c,c++ --disable-multilibmakemake installgcc -v 或 /usr/local/bin/gcc -vgcc version 4.8.2
// stdarray.cpp
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
#include <array>
int main() {
std::array<int, 3> a1{{1,2,3}};
std::array<int, 3> a2 = {1, 2, 3};
std::array<std::string, 2> a3 = {{std::string("a"), "b"}};
std::sort(a1.begin(), a1.end());
std::reverse_copy(a2.begin(), a2.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << '\n';
for (auto& s : a3) std::cout << s << ' ';
std::cout << '\n';
return 0;
}
編譯運行:
g++ -std=c++11 -o stdarray stdarray.cpp
./stdarray

輸出正常說明 GCC 4.8.2 完整支援 C++11 新特性。