主要几个发行版的 gcc 对 c++ 新标准的支持情况区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主要几个发行版的 gcc 对 c++ 新标准的支持情况区别相关的知识,希望对你有一定的参考价值。

纯自用总结,无任何技术含量,
结论是,基本没区别。。。。
 
目前常用的系统:
debian系的
与centOS7对应的 ubuntu14.04LTS
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
 
最新的16.04LTS
g++ (Ubuntu 5.3.1-10ubuntu2) 5.3.1 20160225
 
---------------------------------------------------
查看redhat系列的版本:
cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
 
公司使用centOS6.3 的:
g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
太老了,逐步迁移出来ing,不看也罢。
 
 
公司使用centOS7.1 的:
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
未来几年内主要使用的生产平台
 
 
-----------------------------------------------------
g++从4.8开始支持--std=c++11 (c++1x = c++11,1y=14,1Z=17)
 
14.04 4.8.4
cent7 4.8.5
      4.8.0 thread_local
            [[noreturn]] void f(); 属性器语法
            alignas(double) int i; alignment specifier
            inheriting constructors:
                struct A { A(int); };
                struct B: A { using A::A; }; // defines B::B(int)
                B b(42); // OK
 
      4.8.1 decltype ref-qualifiers
      
      
      4.9   ISO C11 : _Atomic <stdatomic.h> _Generic _Thread_local __auto_type
            C++1y   :decltype(auto)
                      [[deprecated]]
                      lambda capture initializers 
                          [x = 42]{ ... };
                      digit separators
                      generic (polymorphic) lambdas.
            libstdc++:std::make_unique
 
16.04 5.3.1 ISO C11 : default mode for C is now -std=gnu11 instead of -std=gnu89
            c++14   : variable templates
                      extended constexpr
 
g++5最重要的:
A new implementation of std::string is enabled by default, using the small string optimization instead of copy-on-write reference counting.
A new implementation of std::list is enabled by default, with an O(1) size() function;
难以置信list坚持不缓存size,直到5.0版本。。。。。
 
Full support for C++11, including the following new features:
 
    std::deque and std::vector<bool> meet the allocator-aware container requirements;
    movable and swappable iostream classes;
    support for std::align and std::aligned_union;
    type traits std::is_trivially_copyable, std::is_trivially_constructible, std::is_trivially_assignable etc.;
    I/O manipulators std::put_time, std::get_time, std::hexfloat and std::defaultfloat;
    generic locale-aware std::isblank;
    locale facets for Unicode conversion;
    atomic operations for std::shared_ptr;
    std::notify_all_at_thread_exit() and functions for making futures ready at thread exit.
 

以上是关于主要几个发行版的 gcc 对 c++ 新标准的支持情况区别的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C++ 概念(“concepts lite”)支持构建 gcc?

华为OD机试 2023最新 Linux发行版的数量(C++ 100%)

华为OD机试真题 C++ 实现Linux发行版的数量2022.11 Q4 新题

gcc编译选项pedantic(GCC编译器的C++标准严格模式)

Yocto-构建一个qemu版的Linux发行版

将源代码从 Visual C++ 移植到 GCC 都有哪些陷阱[关闭]