Google C++每周贴士

(原文链接:https://abseil.io/tips/ 译者:clangpp@gmail.com)

C++每周贴士

背景介绍:大约五年前,我们在Google内部开始发布一系列C++贴士,大约每周一个,被称为“C++每周贴士”(TotW)。这个系列非常成功,直到今天我们还在发布它们。(这也表明像C++这么丰富的语言短期内不会让我们缺少主题)。

我们不光讨论更精细的语言知识点,我们是真的“贴士”风格——提供建议或设计偏好。C++ TotW集合已经成为Google内部的圣经(canon),每周都会在代码审查和内部邮件列表讨论中被引用数千次。它们常以数字被引用,其中一些已经被简化为“totw/110”或"totw/77"。

我们决定将其中大部分贴士开放给Abseil开发社区,以及全体C++社区。在接下来的几个月里,我们会检查,改善然后发布新的贴士。不是所有的贴士都和Google外的世界有关;有些贴士是为我们的内部工具和概念量身定制的,有些已经随着语言的演进而变得过时了。但我们会在此页面上发布我们能发布的贴士和我们发现有价值的贴士(甚至撰写新的贴士!)

注:我们会保存贴士原有的数字命名规范,最初发布时间,这样已经接触过原有数字编号的那1.2万人就不必学习新的引用地址了。也是因为如此,新来的读者可能会发现一些编号的贴士不见了或顺序是乱的。但请放心,我们给你的都是干货。

注2:一些贴士会包括历史信息——虽然准确——但可能反映的是初写贴士时的设计哲学或使用方式。大部分情况下,我们已经更新了这些信息来反映现今的实践,而且在适当的地方标注了历史原因造成的例外情况。

因为这些贴士并不是按照原始顺序进行发布的,我们把它们按重新发布的时间列在了下面。

  • 2018-09-30
    Tip of the Week #153: Don’t use using-directives

  • 2018-09-28
    Tip of the Week #136: Unordered Containers
    Tip of the Week #144: Heterogeneous Lookup in Associative Containers
    每周贴士 #152: AbslHashValue和你

  • 2018-05-03
    Tip of the Week #117: Copy Elision and Pass-by-value
    Tip of the Week #148: Overload Sets
    Tip of the Week #149: Object Lifetimes vs. =delete

  • 2018-04-20
    每周贴士 #11: 返回策略
    Tip of the Week #120: Return Values are Untouchable
    每周贴士 #24: 复制简明判定法

  • 2018-03-05
    Tip of the Week #141: Beware Implicit Conversions to bool
    Tip of the Week #143: C++11 deleted functions (= delete)

  • 2018-02-22
    Tip of the Week #134: make_unique and private constructors
    Tip of the Week #61: Default Member Initializers
    Tip of the Week #93: using absl::Span

  • 2018-02-15
    Tip of the Week #142: Multi-parameter Constructors and explicit
    Tip of the Week #88: Initialization: =, (), and {}

  • 2018-01-25
    每周贴士 #10: 分割字符串,不必拘小节
    每周贴士 #3: 字符串拼接,operator+对比StrCat()
    每周贴士 #36: 新的连接(Join)API
    Tip of the Week #59: Joining Tuples

  • 2017-12-21
    每周贴士 #42: 工厂函数优于初始化方法
    Tip of the Week #74: Delegating and Inheriting Constructors

  • 2017-12-07
    Tip of the Week #123: absl::optional and std::unique_ptr
    Tip of the Week #131: Special Member Functions and = default

  • 2017-11-30
    Tip of the Week #119: Using-declarations and namespace aliases
    Tip of the Week #130: Namespace Naming

  • 2017-11-23
    Tip of the Week #109: Meaningful const in Function Declarations
    Tip of the Week #126: make_unique is the new new

  • 2017-11-16
    Tip of the Week #112: emplace vs. push_back
    Tip of the Week #65: Putting Things in their Place
    Tip of the Week #99: Nonmember Interface Etiquette

  • 2017-11-09
    Tip of the Week #135: Test the Contract, not the Implementation
    Tip of the Week #49: Argument-Dependent Lookup

  • 2017-11-02
    Tip of the Week #101: Return Values, References, and Lifetimes
    Tip of the Week #107: Reference Lifetime Extension

  • 2017-10-26
    Tip of the Week #64: Raw String Literals
    Tip of the Week #86: Enumerating with Class
    Tip of the Week #94: Callsite Readability and bool Parameters

  • 2017-10-20
    Tip of the Week #122: Test Fixtures, Clarity, and Dataflow
    Tip of the Week #55: Name Counting and unique_ptr
    Tip of the Week #77: Temporaries, Moves, and Copies

  • 2017-09-26
    每周贴士 #1: string_view

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值