ivanjobs.github.io - Modern CPP Developer Need To Know









Search Preview

Modern CPP Developer Need To Know | Ivan的博客

ivanjobs.github.io
CMake CMake在Makefile基础上,又封装了一层高阶语法,CPP开发者使用CMake构建源码更加方便。 ``` cmake_minimum_required(VERSION 2.8.12) # 指令名(参数1 参数2 …)
.io > ivanjobs.github.io

SEO audit: Content analysis

Language Error! No language localisation is found.
Title Modern CPP Developer Need To Know | Ivan的博客
Text / HTML ratio 37 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud Ceph Python Mesos mesos OpenStack CPP 题解 笔记 dir2 Developer RGW put过程探究 API Modern v1023 merge 详解 包管理详解 git
Keywords consistency
Keyword Content Title Description Headings
Ceph 14
Python 7
Mesos 7
mesos 5
OpenStack 4
CPP 4
Headings
H1 H2 H3 H4 H5 H6
1 0 5 0 0 0
Images We found 1 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
Ceph 14 0.70 %
Python 7 0.35 %
Mesos 7 0.35 %
mesos 5 0.25 %
OpenStack 4 0.20 %
CPP 4 0.20 %
题解 3 0.15 %
笔记 3 0.15 %
dir2 2 0.10 %
Developer 2 0.10 %
RGW 2 0.10 %
put过程探究 2 0.10 %
2 0.10 %
API 2 0.10 %
Modern 2 0.10 %
v1023 2 0.10 %
merge 1 0.05 %
详解 1 0.05 %
包管理详解 1 0.05 %
git 1 0.05 %

SEO Keywords (Two Word)

Keyword Occurrence Density
Ceph RGW 2 0.10 %
Modern CPP 2 0.10 %
Ceph v1023 2 0.10 %
To Know 2 0.10 %
Need To 2 0.10 %
Developer Need 2 0.10 %
CPP Developer 2 0.10 %
包管理详解 阿里云服务器设置swapfile的方法 1 0.05 %
Python 包管理详解 1 0.05 %
详解 Python 1 0.05 %
merge 详解 1 0.05 %
git merge 1 0.05 %
Docker操作记录 git 1 0.05 %
安装指南【最简单】 Docker操作记录 1 0.05 %
最新文章 dev 1 0.05 %
shell脚本编写向导 搭建Laravel全栈开发环境 1 0.05 %
devstack 安装指南【最简单】 1 0.05 %
ubuntu1404下安装devstack devstack 1 0.05 %
使用curl测试RESTful接口 ubuntu1404下安装devstack 1 0.05 %
eventlet笔记 使用curl测试RESTful接口 1 0.05 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
Developer Need To 2 0.10 % No
Need To Know 2 0.10 % No
CPP Developer Need 2 0.10 % No
Modern CPP Developer 2 0.10 % No
最新文章 dev ops 1 0.05 % No
安装指南【最简单】 Docker操作记录 git 1 0.05 % No
阿里云服务器设置swapfile的方法 shell脚本编写向导 搭建Laravel全栈开发环境 1 0.05 % No
包管理详解 阿里云服务器设置swapfile的方法 shell脚本编写向导 1 0.05 % No
Python 包管理详解 阿里云服务器设置swapfile的方法 1 0.05 % No
详解 Python 包管理详解 1 0.05 % No
merge 详解 Python 1 0.05 % No
git merge 详解 1 0.05 % No
Docker操作记录 git merge 1 0.05 % No
devstack 安装指南【最简单】 Docker操作记录 1 0.05 % No
搭建Laravel全栈开发环境 2017 July 1 0.05 % No
ubuntu1404下安装devstack devstack 安装指南【最简单】 1 0.05 % No
使用curl测试RESTful接口 ubuntu1404下安装devstack devstack 1 0.05 % No
eventlet笔记 使用curl测试RESTful接口 ubuntu1404下安装devstack 1 0.05 % No
Python eventlet笔记 使用curl测试RESTful接口 1 0.05 % No
PasteDeploy笔记 Python eventlet笔记 1 0.05 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
CPP Developer Need To 2 0.10 % No
Developer Need To Know 2 0.10 % No
Modern CPP Developer Need 2 0.10 % No
最新文章 dev ops math 1 0.05 % No
devstack 安装指南【最简单】 Docker操作记录 git 1 0.05 % No
阿里云服务器设置swapfile的方法 shell脚本编写向导 搭建Laravel全栈开发环境 2017 1 0.05 % No
包管理详解 阿里云服务器设置swapfile的方法 shell脚本编写向导 搭建Laravel全栈开发环境 1 0.05 % No
Python 包管理详解 阿里云服务器设置swapfile的方法 shell脚本编写向导 1 0.05 % No
详解 Python 包管理详解 阿里云服务器设置swapfile的方法 1 0.05 % No
merge 详解 Python 包管理详解 1 0.05 % No
git merge 详解 Python 1 0.05 % No
Docker操作记录 git merge 详解 1 0.05 % No
安装指南【最简单】 Docker操作记录 git merge 1 0.05 % No
ubuntu1404下安装devstack devstack 安装指南【最简单】 Docker操作记录 1 0.05 % No
搭建Laravel全栈开发环境 2017 July 19 1 0.05 % No
使用curl测试RESTful接口 ubuntu1404下安装devstack devstack 安装指南【最简单】 1 0.05 % No
eventlet笔记 使用curl测试RESTful接口 ubuntu1404下安装devstack devstack 1 0.05 % No
Python eventlet笔记 使用curl测试RESTful接口 ubuntu1404下安装devstack 1 0.05 % No
PasteDeploy笔记 Python eventlet笔记 使用curl测试RESTful接口 1 0.05 % No
Python PasteDeploy笔记 Python eventlet笔记 1 0.05 % No

Internal links in - ivanjobs.github.io

开始使用gtest
开始使用gtest | Ivan的博客
寻找正确的语义[比赛总结]
寻找正确的语义[比赛总结] | Ivan的博客
score_thresholder服务开发总结
score_thresholder服务开发总结 | Ivan的博客
Debug CPP Program On Ubuntu
Debug CPP Program On Ubuntu | Ivan的博客
Modern CPP Developer Need To Know
Modern CPP Developer Need To Know | Ivan的博客
汇编语言学习笔记
汇编语言学习笔记 | Ivan的博客
Mesos Quota 和 Reservation
Mesos Quota 和 Reservation | Ivan的博客
libprocess学习笔记
libprocess学习笔记 | Ivan的博客
Consul使用笔记
Consul使用笔记 | Ivan的博客
SSH重新学习
SSH重新学习 | Ivan的博客
Protocol buffers 代码入门
Protocol buffers 代码入门 | Ivan的博客
Mesos Slave 如何上报资源?
Mesos Slave 如何上报资源? | Ivan的博客
Object Locator (Ceph) 探究笔记
Object Locator (Ceph) 探究笔记 | Ivan的博客
librados接口使用
librados接口使用 | Ivan的博客
Ceph RGW Pools 浅析
Ceph RGW Pools 浅析 | Ivan的博客
在单机上搭建多Ceph集群
在单机上搭建多Ceph集群 | Ivan的博客
Dockerfile中RUN/CMD/ENTRYPOINT的区分
Dockerfile中RUN/CMD/ENTRYPOINT的区分 | Ivan的博客
strace使用入门
strace使用入门 | Ivan的博客
Haystack论文学习笔记
Haystack论文学习笔记 | Ivan的博客
Mesos关联配置
Mesos关联配置 | Ivan的博客
ZooKeeper概览
ZooKeeper概览 | Ivan的博客
Ceph故障解析-filestore_merge_threshold
Ceph故障解析-filestore_merge_threshold | Ivan的博客
基于laravel+mysql的容器化DAL方案
基于laravel+mysql的容器化DAL方案 | Ivan的博客
vuejs使用小结1
vuejs使用小结1 | Ivan的博客
Ceph新技能Get
Ceph新技能Get | Ivan的博客
Ceph v10.2.3 RGW源码解析2
Ceph v10.2.3 RGW源码解析2 | Ivan的博客
Ceph v10.2.3 RGW源码解析1
Ceph v10.2.3 RGW源码解析1 | Ivan的博客
s3cmd使用说明
s3cmd使用说明 | Ivan的博客
vuejs工具链简介
vuejs工具链简介 | Ivan的博客
requirejs简介
requirejs简介 | Ivan的博客
可编程自动化输入方案(Mac下)
可编程自动化输入方案(Mac下) | Ivan的博客
Mesos Supress/Revive Offers测试
Mesos Supress/Revive Offers测试 | Ivan的博客
Mesos Offer生命周期杂记
Mesos Offer生命周期杂记 | Ivan的博客
Mesos Agent Containerizer分析
Mesos Agent Containerizer分析 | Ivan的博客
get started with createjs chapter 1 notes
get started with createjs chapter 1 notes | Ivan的博客
mesos agent /monitor/statistics返回数据业务意义
mesos agent /monitor/statistics返回数据业务意义 | Ivan的博客
mesos master/messages_deactivate_frameworks 不生效?
mesos master/messages_deactivate_frameworks 不生效? | Ivan的博客
KMP算法杂谈
KMP算法杂谈 | Ivan的博客
Mesos配置项深入分析
Mesos配置项深入分析 | Ivan的博客
mesos-master replicated_log存的是什么?
mesos-master replicated_log存的是什么? | Ivan的博客
mesos disk usage vs df 结果不一致问题
mesos disk usage vs df 结果不一致问题 | Ivan的博客
Mesos GC原理解析
Mesos GC原理解析 | Ivan的博客
准备mesos单机版开发测试环境
准备mesos单机版开发测试环境 | Ivan的博客
Mesos 1.0.0 源码解析杂记
Mesos 1.0.0 源码解析杂记 | Ivan的博客
stout学习笔记
stout学习笔记 | Ivan的博客
gflags学习笔记
gflags学习笔记 | Ivan的博客
ceph fuse挂载cephfs, ls不出文件列表问题,调试记录
ceph fuse挂载cephfs, ls不出文件列表问题,调试记录 | Ivan的博客
Ceph源码解析(3)-rados put过程探究
Ceph源码解析(3)-rados put过程探究 | Ivan的博客
Hub,Bridge,Switch和Gateway是什么?
Hub,Bridge,Switch和Gateway是什么? | Ivan的博客
数论学习笔记
数论学习笔记 | Ivan的博客
二分图专题解析
二分图专题解析 | Ivan的博客
Ceph Cluster调优日志
Ceph Cluster调优日志 | Ivan的博客
boost库的智能指针
boost库的智能指针 | Ivan的博客
Linux命令使用记录
Linux命令使用记录 | Ivan的博客
Vim Cheat Sheet
Vim Cheat Sheet | Ivan的博客
原码、反码、补码笔记
原码、反码、补码笔记 | Ivan的博客
ceph-deploy 配置文件比较 BUG
ceph-deploy 配置文件比较 BUG | Ivan的博客
Ceph源码解析(2)-rados put过程探究
Ceph源码解析(2)-rados put过程探究 | Ivan的博客
Ceph Release 概述
Ceph Release 概述 | Ivan的博客
Ceph CRUSH Map 维护详解
Ceph CRUSH Map 维护详解 | Ivan的博客
题解[第二周]
题解[第二周] | Ivan的博客
MathQuill Math Equation Cheatsheet
MathQuill Math Equation Cheatsheet | Ivan的博客
题解[第一周]
题解[第一周] | Ivan的博客
Ceph集群运维问题记录
Ceph集群运维问题记录 | Ivan的博客
linux man高级技巧
linux man高级技巧 | Ivan的博客
Git 我错了!
Git 我错了! | Ivan的博客
Ceph源码解析(1)-Create Pool过程探究
Ceph源码解析(1)-Create Pool过程探究 | Ivan的博客
准备Ceph开发环境
准备Ceph开发环境 | Ivan的博客
Ceph:Too Many PGs Per OSD
Ceph:Too Many PGs Per OSD | Ivan的博客
UVA 11292 题解
UVA 11292 题解 | Ivan的博客
Ceph RBD 文件映射实验笔记
Ceph RBD 文件映射实验笔记 | Ivan的博客
硬盘分区
硬盘分区 | Ivan的博客
硬盘模型
硬盘模型 | Ivan的博客
Ceph配置项
Ceph配置项 | Ivan的博客
OSTEP 文件系统实现
OSTEP 文件系统实现 | Ivan的博客
在Ceph底层xfs上找到你上传的文件
在Ceph底层xfs上找到你上传的文件 | Ivan的博客
使用s3cmd操作ceph rgw
使用s3cmd操作ceph rgw | Ivan的博客
Ceph核心概念备忘录
Ceph核心概念备忘录 | Ivan的博客
COSBench使用笔记
COSBench使用笔记 | Ivan的博客
使用saltstack部署运维ceph集群笔记
使用saltstack部署运维ceph集群笔记 | Ivan的博客
如何使用salt states?
如何使用salt states? | Ivan的博客
ceph-deploy命令详解
ceph-deploy命令详解 | Ivan的博客
dd笔记
dd笔记 | Ivan的博客
DTrace是什么?
DTrace是什么? | Ivan的博客
Ceph Cache Tier笔记
Ceph Cache Tier笔记 | Ivan的博客
Linux下理解filesystem/device/mount等概念
Linux下理解filesystem/device/mount等概念 | Ivan的博客
Base64编码详解与应用
Base64编码详解与应用 | Ivan的博客
URLEncoder学习笔记
URLEncoder学习笔记 | Ivan的博客
Ceph论文阅读笔记
Ceph论文阅读笔记 | Ivan的博客
使用Python inotify监控文件变化
使用Python inotify监控文件变化 | Ivan的博客
Git命令Snippets
Git命令Snippets | Ivan的博客

Ivanjobs.github.io Spined HTML


Modern CPP Developer Need To Know | Ivan的博客 最新文章 dev ops math algorithm personal 开始使用gtest 2018书单课单 2017年总结/2018年展望 寻找正确的语义[比赛总结] score_thresholder服务开发总结 Debug CPP Program On Ubuntu Modern CPP Developer Need To Know 汇编语言学习笔记 Mesos Quota 和 Reservation libprocess学习笔记 Consul使用笔记 SSH重新学习 Protocol buffers 代码入门 Mesos Slave 如何上报资源? Object Locator (Ceph) 探究笔记 librados接口使用 Ceph RGW Pools 浅析 在单机上搭建多Ceph集群 2016年总结/2017年展望 Dockerfile中RUN/CMD/ENTRYPOINT的区分 strace使用入门 Haystack论文学习笔记 Mesos关联配置 ZooKeeper概览 Ceph故障解析-filestore_merge_threshold 基于laravel+mysql的容器化DAL方案 vuejs使用小结1 Ceph新技能Get Ceph v10.2.3 RGW源码解析2 Ceph v10.2.3 RGW源码解析1 s3cmd使用说明 vuejs工具链简介 requirejs简介 mesos maintenance深度解析 可编程自动化输入方案(Mac下) Mesos Supress/Revive Offers测试 Mesos Offer生命周期杂记 MesosWage-earnerContainerizer分析 get started with createjs installment 1 notes mesos wage-earner /monitor/statistics返回数据业务意义 mesos master/messages_deactivate_frameworks 不生效? mesos /flags 403 forbidden? KMP算法杂谈 Mesos配置项深入分析 mesos-master replicated_log存的是什么? mesos disk usage vs df 结果不一致问题 Mesos GC原理解析 准备mesos单机版开发测试环境 Mesos 1.0.0 源码解析杂记 stout学习笔记 gflags学习笔记 ceph fuse挂载cephfs, ls不出文件列表问题,调试记录 Ceph源码解析(3)-rados put过程探究 Hub,Bridge,Switch和Gateway是什么? 数论学习笔记 二分图专题解析 Ceph Cluster调优日志 boost库的智能指针 Linux命令使用记录 Vim Cheat Sheet 原码、反码、补码笔记 ceph-deploy 配置文件比较 BUG Ceph源码解析(2)-rados put过程探究 Ceph Release 概述 Ceph CRUSH Map 维护详解 题解[第二周] MathQuill Math Equation Cheatsheet 题解[第一周] Ceph集群运维问题记录 linux man高级技巧 Git 我错了! Ceph源码解析(1)-Create Pool过程探究 准备Ceph开发环境 Ceph:Too Many PGs Per OSD UVA 11292 题解 Docker Private Registry(Ceph Swift) 搭建笔记 Ceph RBD 文件映射实验笔记 硬盘分区 硬盘模型 Ceph配置项 OSTEP 文件系统实现 在Ceph底层xfs上找到你上传的文件 使用s3cmd操作ceph rgw Ceph核心概念备忘录 COSBench使用笔记 GCJ2015 Qualification Round-B题解 使用saltstack部署运维ceph集群笔记 如何使用salt states? ceph-deploy命令详解 dd笔记 DTrace是什么? Ceph Cache Tier笔记 Linux下理解filesystem/device/mount等概念 Base64编码详解与应用 URLEncoder学习笔记 Ceph论文阅读笔记 使用Python inotify监控文件变化 Git命令Snippets 使用Nginx做LB MathQuill学习笔记 Docker化Laravel开发环境 Ceph Pool PG配置说明 Ceph 笔记 Ceph源码分析 Latex数学符号 为Ceph OSS服务搭建LB Ceph RGW S3接口测试:诡异的403 AccessDenied问题 访问Ceph RGW失败 403 Forbidden问题 解决历程 Ceph RADOS论文研读笔记 Ceph源码分析:从一个REST请求,到OSD存储。 各种开源代码协议简述 OpenStack Projects简述 OpenStack Ceilometer 笔记 RabbitMQ 和 oslo.messaging Ceph Rest API 身份验证方式(S3) tcpdump笔记 Ceph集群部署笔记 Python PEP8规范笔记 Python Decorator(装饰器)模式 笔记 libvirt笔记 OpenStack oslo 概览 OpenStack KeyStone API http://localhost:5000/ 源码追踪 Python pdb笔记 zero length variety in a struct Jenkins' Hash Functions NTP部署笔记 Linux iptables笔记 Python Paste笔记 Python PasteDeploy笔记 Python eventlet笔记 使用curl测试RESTful接口 ubuntu14.04下安装devstack devstack 安装指南【最简单】 Docker操作记录 git merge 详解 Python 包管理详解 阿里云服务器设置swapfile的方法 shell脚本编写向导 搭建Laravel全栈开发环境 2017 July 19 Modern CPP Developer Need To Know CMake CMake在Makefile基础上,又封装了一层高阶语法,CPP开发者使用CMake构建源码更加方便。 cmake_minimum_required(VERSION 2.8.12) # 指令名(参数1 参数2 ...) project(hello-world) # 设置project名称 set(SOURCE_FILES main.c) # 设置变量 add_subdirectory(src) # 递归进入下一层目录,该目录下有CMakeLists.txt message(STATUS "This is BINARY dir " ${PROJECT_BINARY_DIR}) # ${变量名} 获取变量值 include_directories(dir1 dir2 ...) # 增加头文件搜索路径 link_directories(dir1 dir2 ...) # 增加非标准共享库搜索路径 target_link_libraries(target lib1 lib2 ...) # 给可执行文件、共享库链接其他的共享库 # 打印共享库依赖: ldd lib/exe_file # ARCHIVE是指静态库,LIBRARY是动态库,RUNTIME是可执行二进制 install(PROGRAMS foo.sh DESTINATION bin) # 安装脚本类可执行程序 add_library(hello SHARED ${hello_src}) # 编译构建共享库,使用源文件集合${hello_src} # 静态库 .a 实际上是.o的集合,静态链接时,可执行程序会拷贝对应函数的实现代码。 # 共享库 .so 共享库在启动的时候加载。 # 动态加载库 .so 可以在程序运行的任何时间加载,使用dlopen等接口。 # 使用nm命令,可以查看动态库里有哪些符号。 set_target_properties(hello_static PROPERTIES OUTPUT_NAME "hello") # 设置静态库输出文件名称 add_executable(hello-world ${SOURCE_FILES}) # 编译构建可执行文件hello-world, 使用${SOURCE_FILES} # 生成一个可执行文件hello-world, 使用这些源文件${SOURCE_FILES} fbthrift fbthrift是一种代码生成工具,可以生成多种语言的代码。这些代码完成序列化和反序列化能力,服务于网络消息传输格式,像google的protobuf。 但thrift还提供跨语言RPC C/S 代码的生成能力。 CPP std::unique_ptr和std::auto_ptr十分类似,auto_ptr进行赋值或者拷贝构造时,所有权会默认转移,导致以前的auto_ptr失效,这样编程的时候很不友好。 std::unique_ptr则关闭了赋值和拷贝构造,提供显式的move操作。 std::shared_ptr实现一种共享ownship和引用计数的语义。 std::weak_ptr和raw pointer都是属于一种Observing Pointer的语义,不占Ownership,std::weak_ptr比raw pointer好的地方在于,提供接口判断是否为dangling pointer. lambda: ->ret{}, 作为一个闭包函数,(返回值、参数列表、函数体)是必须的,没有太大问题。[]提供了一种外部变量进入lambda函数中的方法,包括复制进入=和引用进入&。 type_traits:类型特性,这个头文件中包含很多类型相关的接口函数,属于泛型编程范畴的应用。 右值引用:C++11提出了一种新的转移语义,在原有拷贝构造函数和赋值构造函数的基础上,增加转移构造函数和转移赋值函数, 好处是减少使用时的临时构造和销毁成本。 override/final: 原始的C++继承虚函数的类,可以不显示写virtual,这样会带来一些微妙的错误,比如继承之后因为方法签名的细微差别,导致重载而非重写。这时引入override描述应该是重写上级方法,引入final描述该成员方法不应该被子类重写,避免错误的发生。 static_cast,dynamic_cast, reinterpret_cast, const_cast: c++的类型系统,在多种场景下存在隐式转化和显式转化。这里说的几种,是显式转化,什么时候会用到显示转化?这里的故事可以写一篇文章,不赘述了。static_cast和dynamic_cast都能做类的上下行转化,dynamic_cast更安全,会做类型检查。 boost::bind, 原来我们使用函数或者方法,只需要传递实参进去调用即可。有的时候,我们需要一个绑定了特定参数形式的函数对象,这个时候bind就发挥作用了,bind返回的也是一个函数对象,常常用在回调的地方。 future/promise: 已经在其他编程语言中流行起来的异步编程模型,比如JS。 protobuf 目前对pb的了解比较浅,pb是一种格式,可以生成多语言的代码文件供使用,提供常用的方法(包括序列化、反序列化)。 定义字段的时候,字段后面带的数字编号是什么意思?服务于二进制编码,1-15优先给通用字段,16以上提供给一些可选字段。repeated里的字段会重新进行编号。比如一个字段name,getter方法即为name(), setter方法为set_name()。这个message,还提供序列化和反序列化方法。 参考 Thrift-missing-guide Please enable JavaScript to view the comments powered by Disqus. All content is licensed under CC BY-NC-SA Buit with Jekyll and 3-Jekyll theme • Hosted on Github Table of Contents