SF.7: Don't write using namespace at global scope in a header file

SF.7:不要在头文件中的全局作用域中使用using namespace指令

Reason(原因)

Doing so takes away an #includer's ability to effectively disambiguate and to use alternatives. It also makes #included headers order-dependent as they might have different meaning when included in different orders.

这么做去除了include操作有效消除歧义和使用其他选项的能力。另外,文件以不同次序被包含时的含义可能会随之不同,导致产生包含顺序依赖性。

Example(原因)

// bad.h#include using namespace std; // bad// user.cpp#include "bad.h"bool copy(/*... some parameters ...*/);    // some function that happens to be named copyint main(){    copy(/*...*/);    // now overloads local ::copy and std::copy, could be ambiguous}

Note(注意)

An exception is using namespace std::literals;. This is necessary to use string literals in header files and given the rules - users are required to name their own UDLs operator""_x - they will not collide with the standard library.

有一个例外是using namspace std::literals;。如果需要在头文件中使用字符串字面值而且满足这样的条件:用户被要求为他们自己的UDL运算符“”_x命名而且他们不会和标准库相冲突,使用using namespace std::literals是就可以认为是必要的。

Enforcement(实施建议)

Flag using namespace at global scope in a header file.

标记在头文件的全局作用域中使用using namspace指令的情况。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf7-dont-write-using-namespace-at-global-scope-in-a-header-file

新书介绍

《实战Python设计模式》是作者最近出版的新书,拜托多多关注!

本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。


觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

file头文件_不要在头文件中使用using namespace相关推荐

  1. 什么是源文件什么是头文件_那是什么文件

    什么是文件? 您可以了解很多有关IBM®AIX®上文件的知识,但首先要了解的是第一件事. 什么是文件? 文件是可以读取或写入的数据的集合. 文件可以是您创建的程序,编写的文本,获取的数据或使用的设备. ...

  2. formdata上传文件_封装一个多文件断点续传、分片上传、秒传、重试机制的组件...

    本文为:多文件断点续传.分片上传.秒传.重试机制 的更新版,若想看初始版本的实现,请查看该文章. 凡是要知其然知其所以然 文件上传相信很多朋友都有遇到过,那或许你也遇到过当上传大文件时,上传时间较长, ...

  3. python解压文件_使用Python实现文件压缩和解压

    大家可能都熟悉.zip格式的文件.它可以把多个文件,压缩成一个文件.这在网络上传输时很有用,而且节省硬盘空间. 接下来,我们使用Python实现压缩和解压. 读取ZIP文件信息 要读取ZIP文件的内容 ...

  4. c#如何通过ftp上传文件_定时上传文件到ftp,如何使用工具定时上传文件到ftp

    IIS7服务器管理工具-FTP客户端 作为FTP客户端,它支持批量管理FTP站点 具体功能: 1.自动重连:2.自动重传:3.定时任务(定时上传.定时下载):4.自定义传输模式.线程.编码:5.删除到 ...

  5. .sql文件_面试题:mybatis 中的 DAO 接口和 XML 文件里的 SQL 是如何建立关系的?

    前言 这是 mybatis 比较常问到的面试题,我自己在以前的面试过程中被问到了2次,2次都是非常重要的面试环节,因此自己印象很深刻.这个题目我很早就深入学习了,但是一直没有整理出来,刚好最近一段时间 ...

  6. tomcat temp 大量 upload 文件_原创 | 浅谈URI中的任意文件下载

    点击上方蓝字 关注我吧引言 文件下载是比较常见的业务.常见的接口格式为/download?fileName=xxx.png,整个过程若没过滤目录穿越符号-/或者未对下载的路径进行处理限制.当传入的fi ...

  7. c++创建文件_使用Python实现文件压缩和解压

    (点击上方快速关注并设置为星标,一起学Python) 来源:网络 大家可能都熟悉.zip格式的文件.它可以把多个文件,压缩成一个文件.这在网络上传输时很有用,而且节省硬盘空间. 接下来,我们使用Pyt ...

  8. 简单的php文件_简单的php文件上传(实例)

    把下面代码另存为uploads.php 简易文件上传 请选择文件: function file_list($dir,$pattern=""){ $arr=array(); $dir ...

  9. python模拟浏览器下载文件_模拟浏览器下载文件?

    网上有一个FLV文件,可以直接用Chrome下载.该文件是一个电视节目,由中央电视台(CCTV)出版.央视是一家非盈利的国有电视台,由中国纳税人出资,允许我们在不侵犯版权的情况下下载其内容. 使用wg ...

  10. xml引入另一个xml文件_什么是XML文件(以及如何打开一个XML文件)?

    xml引入另一个xml文件 A file with the .xml file extension is an Extensible Markup Language (XML) file. These ...

最新文章

  1. Java堆和栈的一些区别。。。
  2. linux 服务搭建DNS
  3. 桩身弹性压缩计算公式_基于非线性应力应变关系的桩身压缩量计算
  4. HQL中出现XXX is not mapped的错误
  5. 部署及配置Lync Server 2013存档功能
  6. hdu 5062(dp)
  7. Dom4j完整教程~Document对象相关
  8. 踩内存是什么意思啊_abs防抱死制动系统是什么意思?
  9. pgadmin4 去除master密码
  10. Flutter修改App名称(Android+IOS)
  11. 什么是Subscript?
  12. 读博与怠工(在北航硕博连读)——转载
  13. DC/DC直流隔离升压电源模块5V12V24V转60V/100V/110V/150V/200V/250VDC
  14. JS实现HTML实体与字符的相互转换(一)
  15. Eclipse配置黑色酷炫主题
  16. 美柚社区精选:贴心宝妈的八大育儿经验
  17. JSP程序设计实训(一)—— JSP概述
  18. 11个提高开关电源效率的小技巧
  19. 天正T20v8.0一套安装包
  20. Java实现将数字转换成中文大写

热门文章

  1. python中if __name__ == __main__:用法解析
  2. 项目管理和版本跟踪——Redmine和SVN的结合
  3. ListControl
  4. dynamic programming动态规划初步理解【-1】
  5. Item 10.const成员函数 (Meaning of a Const Member Function)
  6. Atitit 数据库对比较 oracle mysql pgsql 目录 1.1. 跨机器跨库mysql vs pgsql 1 1.2. 动态增加列 pgzhichi 1 1.3. Cte 1 1.4
  7. Atitit prgrmlan 编程语言主题列表 \0 it impttech topic\prgrmlan topic编程语言专题\AOP拦截器 表达式写法.docx \0 it impttec
  8. Atitit 同样是音频输入,AUX接口和麦克风接口有何区别 目录 1.1. 同样是音频输入,AUX接口和麦克风接口有何区别?_百度知道 1 1.2. Aux作用 1 1.3. Aux不能连接普通麦
  9. Atiitt 自我学习法流程 1.预先阶段 1.1.目标搜索 资料搜索 1.2. 1.3.通过关联关键词 抽象 等领域 拓展拓宽体系树 1.4. 2.分析整理阶段 2.1.找出重点 压缩要学会
  10. Atitit 网络编程之道