专栏首页C++核心准则原文翻译C++核心准则ES.84:不要定义无名局部变量

C++核心准则ES.84:不要定义无名局部变量

ES.84: Don't try to declare a local variable with no name

ES.84:不要定义无名局部变量

Reason(原因)

There is no such thing. What looks to a human like a variable without a name is to the compiler a statement consisting of a temporary that immediately goes out of scope.

不存在这么做的理由。以人的角度来看是一个无名变量,但从编译器看起来就是一个马上会离开作用域的临时变量构成的语句。

Example, bad(反面示例)

void f()
{
    lock<mutex>{mx};   // Bad
    // ...
}

This declares an unnamed lock object that immediately goes out of scope at the point of the semicolon. This is not an uncommon mistake. In particular, this particular example can lead to hard-to find race conditions.

代码中定义了一个马上会离开以分号为界的作用域的无名锁。这不是一个特别的错误。通常,这个常见的例子会导致一个难以发现的竞争条件。

Note(注意)

Unnamed function arguments are fine.

无名的函数参数是没有问题的。

Enforcement(实施建议)

Flag statements that are just a temporary.

标记只是临时存在的语句。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es84-dont-try-to-declare-a-local-variable-with-no-name

本文分享自微信公众号 - 面向对象思考(OOThinkingDalian)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++核心准则编译边学-F.17 输入/输出参数传递非常量引用

    This makes it clear to callers that the object is assumed to be modified.

    面向对象思考
  • C++核心准则C.4:只有直接访问表达的函数,才应该成为成员

    Less coupling than with member functions, fewer functions that can cause trouble...

    面向对象思考
  • C++核心准则边译边学-摘要

    This document is a set of guidelines for using C++ well. The aim of this documen...

    面向对象思考
  • 4篇前沿强化学习论文

    HIERARCHICAL VISUOMOTOR CONTROL OF HUMANOIDS

    用户1908973
  • 批评家正则化回归

    离线强化学习,也称为批量强化学习,提供了在没有在线环境交互的情况下,从大量预先记录的数据集进行策略优化的前景。它解决了与数据收集成本和安全性相关的挑战,这两个问...

    用户7703613
  • 用QUnit对Razor进行测试

    Given how central JavaScript is to many modern web applications,  it is importan...

    javascript.shop
  • Reading books

    Maybe reading is the most valuable thing in my life.

    宋天伦
  • 用于推断开放式工作场所浓度的环境物理系统(CS CY)

    开放式工作区中的核心挑战之一是确保劳动者在执行任务时集中精力。因此,能够推断出劳动者的集中度将使建筑设计师,经理和劳动者能够估计不同的开放式布局将产生什么影响并...

    小童
  • RequestParam与RequestBod等参数注解简析

    该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded和multipart/form-data编码的...

    汐楓
  • C++核心准则边译边学-摘要

    This document is a set of guidelines for using C++ well. The aim of this documen...

    面向对象思考

扫码关注云+社区

领取腾讯云代金券