C++11新特性之一:auto-卡核

C++11新特性之一:auto

C++是一门伟大的语言,永远给程序员最大的设计自由, 未使用的特性从不产生副作用,新版本永远完全兼容旧版本。 C++11先前被称作C++0x,...
C++11新特性之四:range-based for loops-卡核

C++11新特性之四:range-based for loops

熟悉C++98/03的对于for循环就再了解不过了,如果我们要遍历一个数组,那么在C++98/03中的实现方式: int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, ...
C++11新特性之六:list-initialization-卡核

C++11新特性之六:list-initialization

在我们实际编程中,我们经常会碰到变量初始化的问题,对于不同的变量初始化的手段多种多样,比如说对于一个数组我们可以使用 int arr[] = {1,2,3}的方式初始化,...
C++11并发学习之五:生产者与消费者-卡核

C++11并发学习之五:生产者与消费者

在C++11并发学习之四:线程同步(续)中实际上用条件变量实现了一个简单的单生产者-单消费者模型,也就是一个生产者和一个消费者。 本文将实现单生产者-多消...
C++11并发学习之一:小试牛刀-卡核

C++11并发学习之一:小试牛刀

1.与C++11多线程相关的头文件 C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomic> ,<thread>,<mutex>,<condition_variable&...
C++11新特性之九:strongly-typed enums-卡核

C++11新特性之九:strongly-typed enums

一.传统枚举类型的缺点 1.作用域冲突 传统C++中枚举元素被暴漏在外层作用域中,这样若是同一作用域下有两个不同的枚举类型,但含有相同的枚举元素,就会产生冲突。...
C++11并发学习之二:线程管理-卡核

C++11并发学习之二:线程管理

1.启动线程 (1)使用对象 “小试牛刀”中thread构造时传入的是函数,还可以传入对象。 #include <thread> #include <iostream> void func() { std::cout<<"worker ...
C++11新特性之十一:emplace-卡核

C++11新特性之十一:emplace

emplace操作是C++11新特性,新引入的的三个成员emplace_front、emplace 和 emplace_back,这些操作构造而不是拷贝元素到容器中,这些操作分别对应push_front、insert 和pu...
C++11并发学习之四:线程同步(续)-卡核

C++11并发学习之四:线程同步(续)

有时候,在第一个线程完成前,可能需要等待另一个线程执行完成。C++标准库提供了一些工具可用于这种同步操作,形式上表现为条件变量(condition variable)和期望(fu...
C++11新特性之二:decltype-卡核

C++11新特性之二:decltype

decltype与auto关键字一样,用于进行编译时类型推导。 decltype实际上有点像auto的反函数,auto可以让你声明一个变量,而decltype则可以从一个变量或表达式中得到类型,...
C++11新特性之十四:std::async-卡核

C++11新特性之十四:std::async

如果你想异步地运行函数doAsyncWork,你有两个基本的选择。你可以创建一个std::thread,用它来运行doAsyncWork,这是基于线程(thread-based)的方法: in...
C++11新特性之十:enable_shared_from_this-卡核

C++11新特性之十:enable_shared_from_this

       enable_shared_from_this是一个模板类,定义于头文件<memory>,其原型为: template< class T > class enable_shared_from_this;        std::en...