C++
文章平均质量分 86
大风起兮呵呵呵
这个作者很懒,什么都没留下…
展开
-
lambda表达式
1. 介绍在C++11标准中,引入了lambda表达式,通过lambda表达式在代码中的使用,可以大大简化C++的代码,使得代码更加清晰并且容易阅读。lambda表达式在概念上,个人理解为是一个匿名的内部函数,然后通过函数指针的方式使外部可以使用这个内部函数。lambda表达式的结构如下所示:[捕获列表] (参数列表)-> 返回类型 { 函数体 }例子1int classicLambda(){ int a = 10; auto cLambda = [&a](in原创 2021-04-28 09:32:21 · 265 阅读 · 0 评论 -
左值和右值std::move和std::forward
1. 左值和右值C++中的表达式存在左值、右值之分,实际上这个语法表述继承自C语言,在C语言中,这两个语法词的意义很简单,左值表示可以在赋值语句左侧的表达式,右值表示可以在赋值语句右侧的表达式。但是C++中对这两个语法的语义进行了拓展,简单来说可以归纳如下:左值使用的是对象的身份(即内存中的位置);右值使用的是对象的值(内容);下面是一个左值和右值的最简单的例子:int a = 1;在上面代码的描述中,a和1都是表达式,不同的是,a是一个左值,1是一个右值,这个概念在实际上和C语言中的概原创 2021-04-28 09:29:32 · 446 阅读 · 0 评论 -
线程安全注解——GUARDED_BY
线程安全注解是现代C++开发的机制,可以在代码编译阶段检查锁的使用情况,从而发现线程同步的相关问题。#1. 线程安全注解的使用按照clang的线程安全注解文档 可以看到如果需要使用线程安全注解的相关功能需要对锁进行相关的封装之后才可以进行使用。目前存在clang存在两套线程安全注解的使用方法,本文仅介绍最新的线程安全注解使用方式(新的capability机制已经完全取代了之前的lockable机制)。在使用前,首先了解一下clang官方推荐的mutex.h中实现的几个宏CAPABILITY//该宏原创 2020-10-16 13:46:30 · 8835 阅读 · 0 评论