C++11
文章平均质量分 57
rukawashan
这个作者很懒,什么都没留下…
展开
-
原子操作 std::atomic<int>
std::atomic模板类可以使对象操作为原子操作,避免多线程竞争问题;请看如下代码,一目了然class Test{public: Test() = default; void CThreadFunc() { for (int i = 0; i < 10000; ++i) { //std::lock_guard lck(Test::m_s_ivalue_mutex); //m_iV...原创 2022-06-06 00:36:43 · 983 阅读 · 0 评论 -
enable_shared_from_this
enable_shared_from_this是一个模板类,定义于头文件,其原型为:template< class T > class enable_shared_from_this; std::enable_shared_from_this 能让一个对象(假设其名为 t ,且已被一个 std::shared_ptr 对象 pt 管理)安全地生成其他额外的 std::shared_ptr 实例(假设名为 pt1, pt2, ... ) ,它们与 pt 共享对象 t 的所有权。 ...原创 2022-06-05 14:14:54 · 369 阅读 · 0 评论 -
单例Singleton
C++11使用静态方法,而且是线程安全的class Singleton{public:static Singleton& getInstance(){static Singleton intance;return instance;}private:Singleton() {}Singleton(Singleton...原创 2022-04-23 23:54:22 · 1046 阅读 · 0 评论 -
Fast Initialization
在C++11之前的版本,初始化是一个没有被统一的写法,有时候用小括号,有时候用大括号,有时候还用赋值号,在学习C语言的时候就深有体会,在c++11中就统一了初始化的形式——“{ }”,直接在对象名后面跟大括号,并在大括号中写入需要初始化的值,并用逗号隔开。甚至类构造函数的初始化列表也可以用“{}”大括号,比如:int values[] {1,2,3,4};vector<int> v {1,2,3,4};complex<double> c{3.0,4.0};...原创 2022-04-22 11:58:20 · 656 阅读 · 0 评论 -
function类模板
类模板std::function 是⼀个通⽤的多态函数包装器。当做函数指针。function类模板template< class R, class... Args >class function< R (Args...)>说明:R是被调⽤函数的返回类型 Args....是被调⽤的函数的形参。function是类模板,只有成员函数,没有数据成员。1. 调用普通函数#include <functional>#include <iostrea.原创 2022-04-22 11:17:33 · 370 阅读 · 0 评论 -
Lamda表达式
C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception-&原创 2022-04-22 10:55:11 · 82 阅读 · 0 评论