C++11
文章平均质量分 74
i胡说
这个作者很懒,什么都没留下…
展开
-
C++模板元编程
所谓的元编程就是编写直接生成或操纵程序的程序,C++模板为C++语言提供了元编程的能力。模板使 C++ 编程变得异常灵活,能实现很多高级动态语言才有的特性(语法上可能比较丑陋,一些历史原因见下文)。普通用户对 C++ 模板的使用可能不是很频繁,大致限于泛型编程,但一些系统级的代码,尤其是对通用性、性能要求极高的基础库(如 STL、Boost)几乎不可避免的都大量地使用 C++ 模板,一个稍有规模的大量使用模板的程序,不可避免的要涉及元编程(如类型计算)。本文就是要剖析 C++ 模板元编程的机制。转载 2021-11-18 00:07:21 · 9100 阅读 · 3 评论 -
C++11中std::future的使用
C++11中的std::future是一个模板类。std::future提供了一种用于访问异步操作结果的机制。std::future所引用的共享状态不能与任何其它异步返回的对象共享(与std::shared_future相反)( std::future references shared state that is not shared with any other asynchronous return objects (as opposed to std::shared_future))。一个futur转载 2021-11-06 17:47:45 · 2024 阅读 · 0 评论 -
C++11中std::packaged_task的使用
C++11中的std::packaged_task是个模板类。std::packaged_task包装任何可调用目标(函数、lambda表达式、bind表达式、函数对象)以便它可以被异步调用。它的返回值或抛出的异常被存储于能通过std::future对象访问的共享状态中。转载 2021-11-06 17:45:51 · 863 阅读 · 0 评论 -
C++11中std::promise的使用
C++11中的std::promise是个模板类。一个std::promise对象可以存储由future对象(可能在另一个线程中)检索的T类型的值或派生自std::exception的异常,并提供一个同步点。转载 2021-11-06 17:42:45 · 681 阅读 · 0 评论 -
C++11中std::async的使用
C++11中的std::async是个模板函数。std::async异步调用函数,在某个时候以Args作为参数(可变长参数)调用Fn,无需等待Fn执行完成就可返回,返回结果是个std::future对象。Fn返回的值可通过std::future对象的get成员函数获取。一旦完成Fn的执行,共享状态将包含Fn返回的值并ready。转载 2021-11-06 17:40:07 · 376 阅读 · 0 评论 -
C++11获取系统当前时间(精确到微秒)
使用C++11新加入std::chrono库可以获取精确到微妙的当前时间。详情见《标准库头文件 chrono》核心代码:转载 2021-11-06 17:34:17 · 9548 阅读 · 0 评论 -
C++11 线程池
C++11 加入了线程库,从此告别了标准库不支持并发的历史。然而 c++ 对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池、信号量等。原创 2021-06-24 10:16:05 · 193 阅读 · 0 评论 -
C++ 之std::function()及 std::bind() 学习总结
类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。转载 2021-06-04 17:58:54 · 399 阅读 · 0 评论 -
C++11 std::this_thread
std::this_thread是一个命名空间,包含一系列访问当前线程的函数。转载 2020-06-15 17:18:54 · 545 阅读 · 0 评论