官方C ++语言子集

时间:2010-06-18 23:21:29

标签: c++ programming-languages

我主要使用C ++进行科学计算,最近我一直把自己局限于一个类似C语言的C ++子集;也就是说,除了复杂和STL之外没有类/继承,模板只用于查找/替换各种替换,还有一些其他的东西我不能把它放在我的脑海里。我想知道在我选择和选择使用哪些功能时,是否有任何官方或有文档记录的C ++语言子集供我参考(以及基本原理)。

7 个答案:

答案 0 :(得分:4)

Embedded C++。这听起来与您正在寻找的内容大致相似。

答案 1 :(得分:4)

不久前我收听了这个SE-Radio播客 - Episode 152: MISRA with Johan Bezem,它引入了MISRA,C和C ++的标准指南,以确保更好的质量,试着看看它。

答案 2 :(得分:4)

Google发布其内部C ++样式指南,通常称为此类子集:https://google.github.io/styleguide/cppguide.html。 Ben Maurer,其公司reCAPTCHA被Google收购,其描述如下in this post on Quora

  

你基本上可以想到Google的   C ++子集为C加上一点糖:

     
    

向结构添加方法的能力

         

基本单继承。

         

集合和字符串类

         

基于范围的资源管理。

  

他们还发布了一个lint工具cpplint.py.

答案 3 :(得分:2)

GCC开发人员即将允许一些C ++功能。我还没有发现任何官方指导方针,但我很确定他们会定义一些。请查看邮件列表中的initial report

答案 4 :(得分:0)

然而,C ++中的最新发展(TR1,C ++ 0x)使它非常通用,允许您在C ++中执行命令式,OOP甚至(有限的)函数式编程。像Boost这样的库也使您能够进行非常强大的基于声明模板的元编程。

我认为Boost是第一个在C ++中尝试的东西。它是一个全面的库,它还包含几个模块,使您能够以函数式(Boost.Functional)编程或进行编译时声明性元编程(Boost MPL)。

答案 5 :(得分:0)

OpenCL一直使用C来编写内核,但他们最近添加了(或即将添加)C ++绑定,也许还有Java。 OpenCL省略了C的一些性能抢夺功能。排除了诸如函数指针和递归之类的东西。智能指针和多态也会产生开销。

对C的限制: SIMD programming languages

稍微偏离主题:以下是使用C比较OpenCL和CUDA的良好讨论。 OpenCL or CUDA Which way to go?

答案 6 :(得分:0)

The SEI CERT C++ Coding Standard 给出了在 C++14 中编写安全、可靠和安全系统的规则列表。这不是 C++ 本身的子集,但作为编码标准,就像其他答案一样,它是通过避免不安全、未定义或容易误用的功能(包括 C 的一些常见功能)而有效的子集。