会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
ZYVV
博客园
首页
新随笔
联系
订阅
管理
2019年6月2日
[转][c++11]我理解的右值引用、移动语义和完美转发
摘要: c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。 左值、右值 C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。
阅读全文
posted @ 2019-06-02 20:16 ZYVV
阅读(419)
评论(0)
推荐(0)
2019年5月26日
[转]引用模板类中定义的类型(用typedef或using)以及auto、decltype、typename的使用
摘要: 一、背景 使用typedef或者using定义类型别名是非常常见的手段,在c++里面,有时为了封装性,模块性等原因还会在某一个namespace或者class内部定义类型别名。 最近在写c++代码的时候,有实现一个模板类,说实话,虽然用c++用了好多年了,但还真没花多少时间去研究模板,因为我始终觉得
阅读全文
posted @ 2019-05-26 20:28 ZYVV
阅读(1568)
评论(0)
推荐(0)
[转]C++ 模板 静态成员 定义(实例化)
摘要: 提出问题: 如果有这样一个模板: 对于以下若干种定义方式,哪些是对的(通过编译)? 为了不影响大家分析判断,我把答案颜色调成比较浅的颜色,下面即是答案: 问题解答: 首先,说明一下三个正确的答案。 第一种形式称之为特化定义,其作用是为模板某一特化提供其静态成员的定义,在我们例子中,它仅仅为Test<
阅读全文
posted @ 2019-05-26 20:16 ZYVV
阅读(928)
评论(0)
推荐(0)
2019年5月19日
[转]C++重载()(强制类型转换运算符)
摘要: 在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这个对对象进行强制类型转换的表达式就等价于对象.operator 类型名(),即变成对运算符函数的
阅读全文
posted @ 2019-05-19 19:38 ZYVV
阅读(2162)
评论(0)
推荐(0)
[转]C++ 类中的static成员的初始化和特点
摘要: 在C++的类中有些成员变量初始化和一般数据类型的成员变量有所不同。以下测试编译环境为: 测试代码(g++编译通过): 这些特殊类型的成员变量主要有: 对于==1. 引用==和==2. 常量==,成员变量必须通过构造函数的==参数列表==的方式初始化。例如:上述程序中的r 和 d 变量的初始化。 对于
阅读全文
posted @ 2019-05-19 19:34 ZYVV
阅读(562)
评论(0)
推荐(1)
[转] C++ STL中map.erase(it++)用法原理解析
摘要: 总结一下map::erase的正确用法。 首先看一下在循环中使用vector::erase时我习惯的用法: 程序从一个vector中删除值为0的元素,利用了vector::erase函数根据iterator删除某个元素时会返回下一个元素的iterator的性质: http://www.cpluspl
阅读全文
posted @ 2019-05-19 19:07 ZYVV
阅读(2656)
评论(0)
推荐(0)
[转]protobuf的编译安装
摘要: github地址:https://github.com/google/protobuf支持多种语言,有多个语言的版本,本文采用的是在centos7下编译源码进行安装。 github上有详细的安装说明:https://github.com/google/protobuf/blob/master/src
阅读全文
posted @ 2019-05-19 18:55 ZYVV
阅读(7116)
评论(0)
推荐(0)
[转]OpenMP中几个容易混淆的函数(线程数量/线程ID/线程最大数)以及并行区域线程数量的确定
摘要: 说明:这部分内容比较基础,主要是分析几个容易混淆的OpenMP函数,加以理解。 (1)并行区域数量的确定: 在这里,先回顾一下OpenMP的parallel并行区域线程数量的确定,对于一个并行区域,有一个team的线程去执行,那么该分配多少个线程去执行呢? OpenMP的遇到parallel指令后创
阅读全文
posted @ 2019-05-19 18:43 ZYVV
阅读(1812)
评论(0)
推荐(0)
C++类中静态数据成员MAP如何初始化
摘要: conv_xxx.hpp class convolution { ... ... typedef std::map ConvDtMap; static ConvDtMap conv_dt_map; static ConvDtMap CreateDtMap() { ...
阅读全文
posted @ 2019-05-19 18:31 ZYVV
阅读(9291)
评论(0)
推荐(0)
2019年4月7日
[转]gcc -ffunction-sections -fdata-sections -Wl,–gc-sections 参数详解
摘要: 背景 有时我们的程序会定义一些暂时使用不上的功能和函数,虽然我们不使用这些功能和函数,但它们往往会浪费我们的ROM和RAM的空间。这在使用静态库时,体现的更为严重。有时,我们只使用了静态库仅有的几个功能,但是系统默认会自动把整个静态库全部链接到可执行程序中,造成可执行程序的大小大大增加。 参数详解
阅读全文
posted @ 2019-04-07 16:09 ZYVV
阅读(1314)
评论(0)
推荐(0)
下一页
公告