c++ core Guidelines 翻译+读书笔记

本文翻译了C++ Core Guidelines,并结合实例提供了详细的读书笔记。内容涵盖联合(unions)、转换(casts)、数组引用(array decay)、范围错误(range errors)和缩小转换(narrowing conversions)等关键点,强调了如何明智使用这些特性以提升代码质量。
摘要由CSDN通过智能技术生成
CppCon 2015  C++ Core Guidelines

先贴出原文地址:https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md

读书笔记

第一部分:思想部分
总结部分:
1. 在代码中直接体现想法
2. 使用标准C++库
3. 表达意图
4. 理想情况下:一个程序应该是类型安全的
5. 宁愿让程序中的问题在编译期暴露出来也不愿意在运行期暴露
6. 哪些东西是在编译期检查不出来的,只能在运行期检查出来
7. 越早捕获运行时错误
8. 不要泄露资源
9. 不要浪费时间和空间

思想层次的东西不是依托于机器检查的。然而,体现这些思想主题的只能是每个独特的程序员。
没有这些思想基础,更 具体/明确/可检查的规则就会缺乏理论基础。

P.1 :在代码中直接体现想法
编译期不会读取代码中的注释,并且很多程序员一贯也不会。在代码中要表达什么是通过定义的语义和可以被编译期(在原则上)和其他的工具检查的
Example
class Date {
    // ...
public:
    Month month() const;  // do
    int month();          // don't
    // ...
};
第一行代码表示:Month类型是明确的是只能返回一个Month类型的变量并且是不可改变的在Date的对象中。  
第二个版本 可以猜想到有很多的可能性发生和不明确的Bugs
Example
void do_something(vector<string>& v)
{
    string val;
    cin >> val;
    // ...
    int index = 0;            // bad
    for (int i = 0; i < v.size(); ++i)
        if (v[i] == val) {
            index = i;
            break;
        }
    // ...
}
一个精心设计的库往往表明的是一个意图和思想(要做什么,而不仅仅是如何做的事情),这个远远超过直接是用语言功能:
void do_something(vector<string>& v)
{
    string val;
    cin >> val;
    // ...
    auto p = find(v, val);  // better
    // ...
}
一个C++程序员应该知道标准库的基本知识,并在适当的时候使用它。任何程序员都应该知道该项目的基础库的基础知识,并适当地使用它们。使用这些指南的程序员应该知道指南支持库,并适当地使用它。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值