前面我们介绍了函数模板。今天我们来看看C++的另一种泛型:类模板。C++中类模板通常是容器(如std::vector)或行为的封装(如之前我们实...
一、为什么要有函数模板 在泛型编程出现前,我们要实现一个swap函数得这样写: 但这个函数只支持int型的变量交换,如果我们要做float, l...
我们在前面讲atomic时,每一个原子操作都有一个std::memory_order参数。这个参数就是C++11的内存模型,用于确定该原子操作以...
上一篇我们介绍了原子操作中最简单的std::atomic_flag,今天我们看一下std::atomic<T>类。 2. std::atomic...
前面我们讲了C++11下的多线程及相关操作,这些操作在绝大多数情况下应该够用了。但在某些极端场合,如需要高性能的情况下,我们还需要一些更高效的同...
前面两章多次使用到std::future,本章我们就来揭开std::future庐山真面目。最后我们会引出std::async,该函数使得我们的...
上一篇介绍的std::promise通过set_value可以使得与之关联的std::future获取数据。本篇介绍的std::packaged...
前面介绍了C++11的std::thread、std::mutex以及std::condition_variable,并实现了一个多线程通信的c...
前面我们介绍了线程(std::thread)和互斥量(std::mutex),互斥量是多线程间同时访问某一共享变量时,保证变量可被安全访问的手段...