C++模板元编程初探

C++模板元编程初探

 

下面的文字摘自,

https://kelvinh.github.io/blog/2013/08/09/cpp-template-meta-programming/

这篇博客,主要是为了记一下当初看到C++模板元编程时的震惊程度。

在看Effective C++的时候,条款48,其中有这样一个例子:

std::thread错误 terminate called without an active exception

std::thread错误 terminate called without an active exception

本人之前写过一篇文章介绍如何使用C++11的是线程库
C++11的新特性之线程类

问题

在之后的实践中发现一个问题,就是本文标题中列出的这个错误
terminate called without an active exception

本文中的代码使用下面的命令编译,编译环境 Centos 7,

$g++ test.cpp … 更多... “std::thread错误 terminate called without an active exception”

C++17都出来了

C++17都出来了

这篇文章不像是个技术文章,像是我本人心情篇。

我今天还在学习c++11的新特性,结果发现c++14也出来,后来想大概看看C++14有什么特性,无意间发现c++17都出来了,我了去,我这是落后多少代了?!

然后自己就想,其实不用学了,因为学了暂时也用不了,因为编译器还不支持,不过刚才查了wiki,发现我去g++已经都支持到C++17了,

C++设计模式之创建模式[Builder Pattern]

C++设计模式之创建模式[Builder Pattern]

我创建的这个对象比较复杂,且该对象里面的成员函数用不同的实现来表示不同的实例,换句话说就是同样的对象构建过程可以有不同的表示。比如我那天去吃过桥米线,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗米线,一份凉菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的。此时我们就可以用建造者模式。

 

类图结构:

design-pattern-builder

 

1.建造者(… 更多... “C++设计模式之创建模式[Builder Pattern]”

C++设计模式之命令模式[Command Pattern]

C++设计模式之命令模式[Command Pattern]     

我们去餐厅吃饭,我们是通过服务员来点菜,具体是谁来做这些菜和他们什么时候完成的这些菜,其实我们都不知道。抽象之,“菜单请求者”我们和“菜单实现者”厨师,2者之间是松耦合的,我们对这些菜的其他一些请求比如“撤销,重做”等,我们也不知道是谁更多... “C++设计模式之命令模式[Command Pattern]”

C++设计模式之访问者模式[Visitor Pattern]

C++设计模式之访问者模式[Visitor Pattern]

我们去银行柜台办业务,一般情况下会开几个个人业务柜台的,你去其中任何一个柜台办理都是可以的。我们的访问者模式可以很好付诸在这个场景中:对于 银行柜台来说,他们是不用变化的,就是说今天和明天提供个人业务的柜台是不需要有变化的。而我们作为访问者,今天来银行可能是取消费流水,明天来银行可能 是去办理手机银行业务,这些是我们访问者的操作,一直是在变化的… 更多... “C++设计模式之访问者模式[Visitor Pattern]”

C++设计模式之模板模式[Template Pattern]

C++设计模式之模板模式[Template Pattern]

     我们最近在开发一个支持多种压缩类型文件的解压缩且制作成pdf的一个应用。对我们的架构来说我们需要支持多种压缩文件类型,但却有固定的操作顺序(先解压缩,在读取里面的文件分析、制作pdf)。我们抽取他们的共同点:这些操作的固定顺序,把他放到我们的父类里;他们的变化点:这些个具体的操作,更多... “C++设计模式之模板模式[Template Pattern]”