C++设计新思维总结二

编译器assertions,帮助程序库为泛型代码产生有意义的错误信息

模板偏特化,让你可以特化template,并非针对特定的、固定集合的参数,而是针对吻合某个式样的一群参数

局部类,让你做些有趣的事,特别是对template函数

常整数映射外i型别,允许在编译期以数值作为分派的取决因素

型别对型别的映射,让你利用函数重载取代C++缺乏的一个特性:函数模板偏特化。

型别选择,让你得以boolean条件来选择型别

编译期间侦测可转换型和继承性,让你得以判断任意型别是否可以相互转换,或是否为形同型别,或是否有继承关系。

TypeInfo实作出一个包装了std::type_info的template class,其中包含了value语义和次序比较等特性

NullType和EmptyType,其功能犹如在template metaprogramming中的占位型别

TypeTrait提供了许多一般用途的traits,让你可以根据不同的型别定制你的代码。

时间: 2024-10-10 02:40:12

C++设计新思维总结二的相关文章

《C++设计新思维》勘误,附C++14新解法

勘误: 原书(中文版)3.13节,65-69页中GenScatterHierarchy以及FieldHelper均存在问题,当TypeList中类型有重复时,无法通过编译(原因在于"二义性基类"). 书中出现的二义性问题,可以用一小段代码演示一下: class A{}; class B:public A{}; class C:public A,public B{}; void test() { C c; A& cf =c;//wrong,don't try this at ho

读-《c++设计新思维-泛型编程与设计模式之应用》经典记录(英文书名:《modern c++ design》)

1.以设计为目标的程序库都必须帮助使用者完毕静止的设计.以实现使用者自己的constraints,而不是实现预先定义好的constraints. 2.Anything that can be done in more than one way should be identified and migrated from the class to a policy 3.Design is choice. Most often, the struggle is not that there is n

C++设计新思维

问题与需求: 请读者先看这篇文章,[C++模版之旅]项目中一次活用C++模板(traits)的经历. 对于此篇文章提出的问题,我给出一个新的思路. talking is cheap,show me the code.文章名字很大,仅仅是为了引起你的注意. 代码: class ExportData { union { string * sp; long* lp; double* dp; void* vp; }; enum my_type {SP,LP,DP} types; static unord

《C++设计新思维》Command设计模式读后感

原文内容提领: 本书第5章标题为泛化仿函数,我认为本章真正讲述的内容可以总结出一句话! 如何利用C++老标准实现C++11新标准类似std::function提供的功能. std::function简介: 分析std::function源码可知,std::function大量利用新标准的特性,变长参数模板,完美转发等. C++中可调用体: C++中的可调用体,现在可以补充一下 1.C-like function 2.C-like pointer to function 3.reference t

c++学习书籍推荐《C++设计新思维》下载

百度云及其他网盘下载地址:点我 译序by 侯捷 i 译序by 於春景 iii 目录 v 序言by scott meyers xi 序言by john vlissides xv 前言 xvii 致谢 xxi 第一篇 技术(techniques) 1 第1章 基于policy的class设计(policy-based class design) 3 1.1 软件设计的多样性(multiplicity) 3 1.2 全功能型(do-it-all)接口的失败 4 1.3 多重继承(multiple in

新随笔(二)用户体验:用户注册表单中的“年份”设计乱象

新随笔(二)用户体验:用户注册表单中的“年份”设计乱象 上午,我因为一些原因,想再注册一个新QQ号,当我注册时,我发现一个有趣的事儿,在用户注册页的表单选项“年份”选择中居然有”1895年“, 有意思,难道QQ觉得4亿用户还是太少,希望古人在那边也使用上QQ. (哈,谁能告诉我上图中显示的验证码是什么?看来QQ不光是防止机器人注册,连人类都挡在门外了.) 我先停下注册,看看其他类似网站是怎么做的.接下来我分别查看了开心.人人.朋友网.不查不知道,一查吓一跳,居然全都有类似的情况. why? 难道

《英语语法新思维初级教程》学习笔记(二)名词

参考资料: 1. <英语语法新思维初级教程> ? 知识点 ▼ 名词是用来表示人.事物.地点以及抽象事物的名称. ▼ 名词通常分为两大类:专有名词(proper noun)和普通名词(common noun). ▼ 专有名词表示特定的人.物.机构或场所等的名词(首字母须大写).如:Paris,the United States和Bill Gates等. ▼ 普通名词又分为:可数名词(countable noun)和不可数名词(uncountable noun)两类. ▼ 可数名词 = 个体名词

CIO新思维III——变革时代的企业IT战略与实务,coming soon

书快上市了,在这儿放个编后记出来,个人的一些感想.    编后记  这本书由中国CIO自媒体联盟发起,汇集数十位中国企业信息化管理者的实践经验与感悟,是中国CEO和CIO们读后能够产生共鸣.得到启发.引起思考的诚意之作.之所以是诚意之作是,书稿差点儿难产--开始构划图书时结构刚性太强,没考虑到作者比较多,写作风格难以统一,写作篇幅上也难以统一,文字水平上也参差不齐,再加上作者们都是一线的企业管理者,能抽时间写稿就很难得了,再有几个来回的修改,那就很难控制时间了. 但是,从主编到编委到作者们遇到苦

网站设计新趋势:沉浸式交互设计

时间的车轮滚滚向前,不断的改变我们对世界的认知,一些网站和App从大红大紫到门可罗雀也许只需要几个月的时间,但是每一次一种旧技术的终结,也就意味着一种新技术的兴起. 以下是我搜集的曾经受到用户热捧的现代交互设计技术,这些技术有些确实非常新奇,有些只是对旧思想的一些改进,但是不管怎样,这些技术会帮助你走在时代的前列,赶上世界前进的步伐. 一. 动画和过渡 一提及交互设计,我们就会想到一个时下最流行的概念,那就是动画效果,从一个炫酷的悬停到一个全屏化的卡通动漫背景,都属于动效的范畴. 对于交互设计来