惯用专题

C++之assert惯用法

目录 1.引言 2.简单示例 3.推荐使用方法 4.常见使用场景和注意事项 4.1.检查参数的合法性 4.2.assert不能使用改变环境的语句 4.3.在未知的逻辑中添加assert(false) 5.总结 1.引言         assert在 <assert.h> 头文件中定义,其作用是如果它的提交呢返回错误,则终止执行。         原型定义: #

C++ 的 Tag Dispatching(标签派发) 惯用法

目录 1.概述 2.标准库中的例子 3.使用自己的 Tag Dispatching 3.1.使用 type traits 技术 3.2.使用 Type_2_Type 技术 4.Tag Dispatching的使用场景 5.总结 1.概述         一般重载函数的设计是根据不同的参数决定具体做什么事情,编译器会根据参数匹配的原则确定正确的重载版本。但是对于函数模板,其参数

惯用Python的5个技巧(循环)

在这篇文章中,你将看到5种方法可以使你的python循环更习惯,运行得更快,内存效率更高。 在我看来,Python是计算机科学中最简单、最通用的语言之一。如果你正确地编写python代码,很难区分python代码和伪代码。但有时,在编写最漂亮的python代码的过程中,大多数开发人员会忘记一件事:代码的执行速度。 您可以编写可读性非常强的代码,而外行可能会将其混淆为语法技能较差的人所写的英

JSP的9个内置对象惯用法

1,out:   out对象是JspWriter类的实例,是向客户端输出内容常用的对象;  JSP的输出流,,等同于表达式;  Java代码   out.println("test");   2,request:   客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest

【惯用法:模板方法+建造者模式】interface(build接口)+abstract(声明构建步骤)+多个实现子类

毫无疑问,多态是java这类面向对象最有价值的地方,接口和抽象类可以帮助实现多态:其实就是父类去管理子类。 那他俩有啥区别呢? 其实,接口就是协议,一般没有实现。 而抽象类,可以有抽象方法,是让子类重写的,同时可以提供模板。 比如: interface IBuildPlayerData{      Data build(); }          abstract

c++ pimpl惯用法

介绍 Pimpl(Pointer to implementation) 是一种减少代码依赖和编译时间的C++编程技巧,其基本思想是将一个外部可见类(visible class)的实现细节(一般是所有私有的非虚成员)放在一个单独的实现类(implementation class)中,而在可见类中通过一个私有指针来间接访问该实现类。(如 std::unique_ptr) 什么是 Pimpl 惯用法

C++惯用法之RAII思想: 资源管理

C++编程技巧专栏:http://t.csdnimg.cn/eolY7 目录 1.概述  2.RAII的应用 2.1.智能指针 2.2.文件句柄管理 2.3.互斥锁 3.注意事项 3.1.禁止复制 3.2.对底层资源使用引用计数法 3.3.复制底部资源(深拷贝)或者转移资源管理权(移动语义) 4.RAII的优势和挑战 5.总结 1.概述         R

C++惯用法之空基类优化

相关系列文章 C++惯用法之Pimpl C++惯用法之CRTP(奇异递归模板模式) C++之std::tuple(二) : 揭秘底层实现原理 目录 1.空类 2.空基类优化 3.内存布局原则 4.实例分析 5.总结 1.空类         C++ 中每个对象的实例都可以通过取地址运算符获取其在内存布局中的开始位置,因此每个类对象至少需要占用一个字节的空间。空类是指不包含

C++惯用法之CRTP(奇异递归模板模式)

相关系列文章 C++惯用法之Pimpl C++之数据转换(全) 目录 1.介绍 2.CRTP的使用场景 2.1.实现静态多态 2.2.代码复用和扩展性 3.总结 1.介绍         CRTP的全称是Curiously Recurring Template Pattern,即奇异递归模板模式,简称CRTP。CRTP是一种特殊的模板技术和使用方式,是C++模板编程中的一

RAII惯用法:C++资源管理的利器(转)

原文:http://www.cnblogs.com/hsinwang/articles/214663.html RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,

C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)

C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above) 分类: C++ 2011-06-06 10:04  2166人阅读  评论(2)  收藏  举报 c++ attributes struct interface class 编译器 意图: 使用派生类作为模板参数特