Category Archives: C/C++

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

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

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

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

$> g++ test.cpp -std=c++11 -ggdb -lpthread -o test

继续阅读

C++11的重大改变

此篇文章是本人翻译自前C++标准委员会的Danny Kalev写的The Biggest Changes in C++11 (and Why You Should Care)

原文地址:

http://blog.smartbear.com/c-plus-plus/the-biggest-changes-in-c11-and-why-you-should-care/

自C++的第一个迭代版本算起,已经有11年头了,前C++标准委员会的成员Danny Kalev解释了编程语言如何被提高,如何帮助你写更好的代码。

继续阅读

C++17都出来了

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

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

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

继续阅读

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

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

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

继续阅读

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

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

我们去餐厅吃饭,我们是通过服务员来点菜,具体是谁来做这些菜和他们什么时候完成的这些菜,其实我们都不知道。抽象之,“菜单请求者”我们和“菜单实现者”厨师,2者之间是松耦合的,我们对这些菜的其他一些请求比如“撤销,重做”等,我们也不知道是谁在做。其实这就是本文要说的Command模式。

继续阅读

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

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

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

继续阅读

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

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

     我们最近在开发一个支持多种压缩类型文件的解压缩且制作成pdf的一个应用。对我们的架构来说我们需要支持多种压缩文件类型,但却有固定的操作顺序(先解压缩,在读取里面的文件分析、制作pdf)。我们抽取他们的共同点:这些操作的固定顺序,把他放到我们的父类里;他们的变化点:这些个具体的操作,去留给不同的子类去实现。这个就是模板方法模式,他定义一个操作中的算法的骨架(例子中的固定的操作顺序),而将一些步骤延迟到子类中(例子中的多种压缩文件的解压缩)。

继续阅读