自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

转载 effective c++ 48 了解模板元编程

effective c++ 48 了解模板元编程template <int N>struct Factorial{ enum { value = N * Factorial<N - 1>::value };}; // 特化版本template <>struct Factorial<0>{ enum { value = 1 };}; int main(){

2021-01-26 16:32:10 98

转载 effective c++ 47 请使用traits classes变现类信息

effective c++ 47 请使用traits classes变现类信息首先我们要知道什么是traits,c++之父对其的解释为**当函数,类或者一些封装的通用算法中的某些部分会因为数据类型不同而导致处理或逻辑不同时,traits会是一种很好的解决方案。**举个例子:template <typename T>class Test {     ......};假设有这样的需求,类Test中的某部分处理会随着类型T的不同而会有所不同,比如希望判断T是

2021-01-26 16:08:41 110

转载 Effective_C++_条款四十五:运用成员函数模板接受所有兼容类型

Effective_C++_条款四十五:运用成员函数模板接受所有兼容类型首先理解标题的含义真实指针是支持隐式转换的,智能指针是行为像指针的对象,并且提供指针没有的机能。现在我们想如何编写智能指针的构造函数,使其行为能够满足我们的转型需求。因为一个template可以无限量具现化,所以我们无法写出我们需要的所有构造函数,我们解决问题的方法是不是为智能指针写一个构造函数,而是直接为其写一个构造模板。template<typename T>class SmartPtr{ public:

2021-01-25 17:14:25 117

转载 effective c++条款44 将与参数无关的代码抽离templates

effective c++条款44 将与参数无关的代码抽离templates首先了解这个条款的含义:使用template可能导致代码膨胀,二进制码会带着重复(或者几乎重复)的代码、数据,或两者。其结果有可能源码看起来合身而整齐,但目标码却不是这么回事。所以该条例用于我们解决template带来的代码膨胀问题。首先模板参数并不局限于类型,普通值也可以作为模板参数。当要使用基于值的模板时,必须显示地指定这些值,才能对模板进行实例化,并获得最终代码。标题中的参数可以指类型参数也可以指非类型参数先看非类

2021-01-25 16:27:29 266 1

转载 effective c++条款43 学习处理模板化基类内的名称

effective c++条款43 学习处理模板化基类内的名称首先为什么要处理模板化基类的名称呢?举个例子我们现在要设计一个程序,要传送信息到若干不同的公司去,信息要不译成密码,要不就是未加工的文字。我们在编译期间有足够的信息来决定哪一个信息传至哪一家公司。我们实现的方式有两种 一种是动态绑定,就是在使用运行期多态,定义子类重写两个函数,另一种就是使用静态多态。(编译期多态和运行期多态的差别,编译器多态是决定那个重载函数被调用的,也就是说编译器多态是一种静态多态,而运行期多态是一种动态绑定)log是

2021-01-25 15:29:49 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除