c++ 发展历程

https://blog.csdn.net/weixin_42837024/article/details/82427780

 

##C++ 发展历程:

C++98 到 C++03 到 C++11 到 C++14 到 C++17
1
C++语言发展大概可以分为三个阶段:

第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,
并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;

第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现
,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,
C++受到了一定的冲击;

第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,
C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言
中最复杂的一员。


C++ 98 标准

C++标准第一版,1998年发布。正式名称为ISO/IEC 14882:1998[18] 。
绝大多数编译器都支持C++98标准。不过当时错误地引入了export关键字。
由于技术上的实现难度,除了Comeau C++编译器export关键字以外,
没有任何编译器支持export关键字。并且这个标准对现代的一些编译理念有相当的差距,
有很多在高级语言都应当有的功能,它都没有。这也正是后来需要制定C++11标准的原因所在。

 


C++ 03 标准

C++标准第二版,2003年发布。正式名称为ISO/IEC 14882:2003[19] 。
这个标准仅仅是C++98修订版,与C++98几乎一样,没做什么修改。
仅仅是对C++98做了一些“勘误”,就连主流编译器(受C99标准影响)都已支持的long long都没有被加入C++03标准。

 


C++ 11 标准

C++标准第三版,2011年8月12日发布。正式名称为ISO/IEC 14882:2011[20] 。
由C++标准委员会于2011年8月12日公布,并于2011年9月出版。
2012年2月28日的国际标准草案(N3376)是最接近于现行标准的草案(编辑上的修正)。
C++11包含了核心语言的新机能,并且拓展C++标准程序库,并且加入了大部分的C++ Technical Report 1
程序库(数学上的特殊函数除外)。此次标准为C++98发布后13年来第一次重大修正。
注意: C++11标准(ISO/IEC 14882:2011)与C11标准(ISO/IEC 9899:2011)
是两个完全不同的标准,后者是C语言的标准。

 


C++ 14 标准

C++标准第四版,2014年8月18日发布。正式名称为ISO/IEC 14882:2014[21] 。
2014年8月18日,ISO组织在其网站上发布文章称:
C++ 作者 Bjarne Stroustrup 称,主要的编译器开发商已经实现了 C++ 14 规格。
C++ 14 是 C++ 11 的增量更新,主要是支持普通函数的返回类型推演,泛型 lambda,扩展的 lambda 捕获,
对 constexpr 函数限制的修订,constexpr变量模板化等等。
C++14是C++语言的最新标准,正式名称为"International Standard ISO/IEC 14882:2014(E) 
Programming Language C++"。C++14旨在作为C++11的一个小扩展,主要提供漏洞修复和小的改进。
C++14标准的委员会草案(Committee Draft)N3690于2013年5月15日发表
。工作草案(Working Draft)N3936已于2014年3月02日完成。
最终的投票期结束于2014年8月15日,结果(一致通过)已于8月18日公布。

 

 


如何理解C++?《摘自Effective C++》
C++已经是个多重范型编程语言(multiparadigm programming language),一个同事支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、范型形式(generic)、元编程形式(metaprogramming)的语言。

如何理解这样一个语言?

将C++视为一个由相关语言组成的联邦而非单一语言,在其某个次语言中,各种守则与通例都倾向简单、直观易懂、并且容易记住。

C++的4个次语言:

C :

 C++以C为基础。区块(blocks)、语句(statements)、预处理器(preprocessor)、
 内置数据类型(built-in data types)、数组(arrays)、指针(pointers)等都来自C。


Object-oriented C ++ :

虚函数(virtual function)等都是面向对象设计在C++上的最直接实施。


Template C++ (generic programming) :

     C++的范型编程(generic programming)部分。他们带来新的编程范型(programming paradigm),
     也就是所谓的template meta programming(TMP,模板元编程)。


STL:

 即template程序库,对容器、迭代器、算法以及函数对象的规约有极佳的紧密配合与协调。
C++并不是一个带有一组守则的一体语言,而是由4个次语言组成的联邦语言,每个次语言都有自己的规约。

        98年菜鸡一枚,请大佬们多多关照!
————————————————
版权声明:本文为CSDN博主「wildPointer_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42837024/article/details/82427780

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值