首页 > 编程语言 >C++ 核心指南之 C++ P.哲学/基本理念(上)

C++ 核心指南之 C++ P.哲学/基本理念(上)

时间:2023-07-30 23:24:21浏览次数:45  
标签:指南 理念 检查 int 代码 C++ 编译 void

C++ 核心指南(C++ Core Guidelines)是由 Bjarne Stroustrup、Herb Sutter 等顶尖 C+ 专家创建的一份 C++ 指南、规则及最佳实践。旨在帮助大家正确、高效地使用“现代 C++”。

这份指南侧重于接口、资源管理、内存管理、并发等 High-level 主题。遵循这些规则可以最大程度地保证静态类型安全,避免资源泄露及常见的错误,使得程序运行得更快、更好。

文中提到的 GSL(Guidelines Support Library) 是 C++ 核心指南支持库 https://github.com/Microsoft/GSL

P:Philosophy 基本理念

本节的规则反映了现代 C++ 的哲学/基本理念,贯穿整个 C++ 核心指南:

规则摘要:

  • P.1:直接用代码表达想法
  • P.2:编写符合 ISO 标准的 C++ 代码
  • P.3:表达意图
  • P.4:(理想情况下)程序应该是静态类型安全的
  • P.5:优先使用编译时检查而不是运行时检查
  • P.6:无法在编译时检查的内容应该在运行时可检查
  • P.7:尽早捕获运行时错误
  • P.8:不要泄露任何资源
  • P.9:不要浪费时间或空间
  • P.10:优先使用不可变数据而不是可变数据
  • P.11:封装混乱的结构,而不是让其散布在代码中
  • P.12:根据需要使用支持工具
  • P.13:根据需要使用支持库

这些基本理念是其他章节具体规则的理论基础。

P.1:直接用代码表达想法

关联 P.3

  • 代码不会说谎,注释可不一定
  • 编译器不看注释(很多程序员也不看

    标签:指南,理念,检查,int,代码,C++,编译,void
    From: https://www.cnblogs.com/tengzijian/p/17592334.html

相关文章

  • 大模型入坑指南 大厂vs初创公司
    大模型竞争激烈,创业公司随时可能倒掉,造成项目烂尾,EB3.5已经跟国内其他模型拉开了差距…人工智能是当前时代的重要热点之一,它正在改变着我们的生活和工作。在人工智能领域,有一种技术尤其引人注目,那就是大模型。大模型是指具有超大规模参数和计算能力的深度学习模型,它们可以处理海量......
  • C++ Primer 学习笔记——第八章
    第八章IO库前言C++语言并不会直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。这些类型支持从设备中读取数据、向设备写入数据IO操作。设备可以是文件、控制台窗口等,还有一些类型允许内存IO。IO库定义了读写内置类型值的操作。8.1IO类在之前我们使用的IO类型......
  • C++入门:命名空间
    在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称都将存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。1.命名空间的定义定义命名空间,需要使用到namespace关键字,......
  • C++入门:缺省参数
    1.缺省参数的概念缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的参数。#include<iostream>usingnamespacestd;voidFunc(inta=0){ cout<<a<<endl;}intmain(){ Func(); Func(1);......
  • 初识C++
    C++对C语言设计不合理的地方进行了优化,下面来看一下到底进行了什么优化。一、C++关键字(C++98)C++总计63个关键字,C语言32个。二、命名空间在C/C++中,变量、函数、和类都是大量存在的,这些变量、函数和类的名称都将存在于全局作用域中,可能会导致很多命名冲突。使用命名空间的目的就是对......
  • C++ Primer Plus 第6版 读书笔记(8)第 8章 函数探幽
    第8章函数探幽本章内容包括:内联函数。引用变量。如何按引用传递函数参数。默认参数。函数重载。函数模板。函数模板具体化。通过第7章,您了解到很多有关C++函数的知识,但需要学习的知识还很多。C++还提供许多新的函数特性,使之有别于C语言。新特性包括内联函数、......
  • C++ assert学习
    转自:https://blog.csdn.net/m0_51913750/article/details/1309864651、介绍  assert是一个宏,用于在运行时检查一个条件是否为真,如果条件不满足,则运行时将终止程序的执行并输出一条错误信息。条件满足为true时,不做任何操作。assert宏的使用可以帮助程序员检查程序的正确性,并......
  • C++虚函数、static_cast、dynamic_cast
        C++虚函数:当一个类中拥有至少一个虚函数,那么编译器就会构建出一个虚函数表来指示这些函数的地址,假如继承该类的子类定义并实现了一个同名并具有同样函数签名的方法重写了基类中的方法,那么虚函数表会将该函数指向新的地址。    此时多态性就体现出来了:当我们将基......
  • C++ error学习
    转自:https://blog.csdn.net/NiuYoohoo/article/details/849304041、介绍errno是用于错误指示的预处理器宏,数个标准库函数通过写入正整数到errno指示错误。程序启动时errno的值为​0​,而且尽管不管在错误发生与否时,允许写入正整数到errno。2、例子#include<iostrea......
  • C++ 算法进阶系列之再聊聊动态规划的两把刷子
    1.前言递归和动态规划是算法界的两个扛把子,想进入算法之门,则必须理解、掌握这两种算法的本质。一旦参悟透这2种算法的精髓,再加上对树、图等复杂数据结构的深入理解,可以解决大部分的算法问题。本文通过几个典型案例,再次聊聊动态规划算法。其实动态规划算法也就2把刷子。找到......