51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

C++

C++日志库spdlog

C++日志库spdlog

厉飞雨 阅读(5) 评论(0) 赞(1)

使用方法 spdlog是基于C++ 11的日志组件,它非常轻量,使用时你仅仅需要引入头文件就可以了。 spdlog下载链接或使用命令下载 1 wget https://github.com/gabime/spdlog 下载完成后,将includ/spdlog目录单独拷贝到自己的工程目录,g++编译

C++11新特性之auto和decltype知识点

C++11新特性之auto和decltype知识点

厉飞雨 阅读(6) 评论(0) 赞(1)

C++11引入了auto和decltype关键字,使用它们可以在编译期就推导出变量或者表达式的类型,方便开发者编码的同时也简化了代码。 auto auto可以让编译器在编译器就推导出变量的类型,看代码: 1234 auto a = 10; // 10是int型,可以自动推导出a是intint i = 10;auto b = i

C++11新特性之左值引用、右值引用、移动语义、完美转发

C++11新特性之左值引用、右值引用、移动语义、完美转发

厉飞雨 阅读(5) 评论(0) 赞(1)

C++11新增了右值引用,谈右值引用也可以扩展一些相关概念: 左值 右值 纯右值 将亡值 左值引用 右值引用 移动语义 完美转发 返回值优化 左值、右值 概念1: 左值:可以放到等号左边的东西叫左值。 右值:不可以放到等号左边的东西就叫右值。 概念2: 左值:可以取地址并且有名字的东西就是左值。 右值:不能取地址的没有名

C++11新特性之列表初始化

C++11新特性之列表初始化

厉飞雨 阅读(6) 评论(0) 赞(1)

C++11新增了列表初始化的概念。 在C++11中可以直接在变量名后面加上初始化列表来进行对象的初始化。 1234567891011121314151617 struct A { public: A(int) {} private: A(const A&) {}};int main() {

C++11新特性std::function和lambda表达式

C++11新特性std::function和lambda表达式

厉飞雨 阅读(5) 评论(0) 赞(1)

c++11新增了std::function、std::bind、lambda表达式等封装使函数调用更加方便。 std::function 讲std::function前首先需要了解下什么是可调用对象 满足以下条件之一就可称为可调用对象: 是一个函数指针 是一个具有operator()成员函数的类对象(传说中的仿函数),lambda表达式 是一个可被转换为函

C++11新特性之模板改进

C++11新特性之模板改进

厉飞雨 阅读(5) 评论(0) 赞(1)

C++11关于模板有一些细节的改进: 模板的右尖括号 模板的别名 函数模板的默认模板参数 模板的右尖括号 C++11之前是不允许两个右尖括号出现的,会被认为是右移操作符,所以需要中间加个空格进行分割,避免发生编译错误。 模板的别名 C++11引入了using,可以轻松的定义别名,而不是使用繁琐的typedef。

C++11新特性之线程相关的知识点

C++11新特性之线程相关的知识点

厉飞雨 阅读(6) 评论(0) 赞(1)

c++11关于并发引入了好多新东西,这里按照如下顺序介绍: std::thread相关 std::mutex相关 std::lock相关 std::atomic相关 std::call_once相关 volatile相关 std::condition_variable相关 std::future相关 async相关 std::thr

C++11的异步操作 - async

C++11的异步操作 - async

厉飞雨 阅读(5) 评论(0) 赞(1)

C++11中增加了async,如它的名字一样,这个关键字就是用来创建异步操作的,c++11中有个更常用的异步操作,叫做线程thread,那么thread和async有什么区别呢?以及async的优势是什么?应该怎么使用? C++11 使用 std::async创建异步程序 C++11中增加了线程,可以非常方便的创建线程,它的基本用法是这样的:

C++11新特性之智能指针

C++11新特性之智能指针

厉飞雨 阅读(6) 评论(0) 赞(1)

C++11引入了三种智能指针: std::shared_ptr std::weak_ptr std::unique_ptr shared_ptr shared_ptr使用了引用计数,每一个shared_ptr的拷贝都指向相同的内存,每次拷贝都会触发引用计数+1,每次生命周期结束析构的时候引用计数-1,在最后一个shared_ptr析构的时候,内存才会释放