
c++ 14
文章平均质量分 67
炼器散人
乒乓球+节食=减肥
展开
-
c++11 enum class
c++ 11的enum class原创 2013-09-14 00:20:37 · 16969 阅读 · 0 评论 -
c++11 函数内部返回对象使用move语义的最佳实践
一句话,直接返回即可,不用任何变化。当启动了c++11选项后,通过函数返回代码没有发生任何变化,但是已经使用了move语义,而不需要之前的NRVO编译器优化技术。下面是stackoverflow上的一个讨论贴,比较有价值:246down voteacceptedFirst examplestd::vector return_vector(void){ std::vector tmp {1原创 2015-04-12 21:28:24 · 6778 阅读 · 1 评论 -
基本原子操作
Table of Contents1. 处理器支持的一系列原子操作1.1. CAS(Compare And Swap/Set)1.1.1. 函数原型1.1.2. 实现逻辑1.1.3. C++11标准库1.2. Fetch And Add1.3. Test And Set1 处理器支持的一系列原子操作1.1 CAS(Compare And Swap/Set)详细内容参考 wiki, 下面是我的理解1原创 2015-12-15 23:19:58 · 3607 阅读 · 0 评论 -
c++标准14取消decltype推算函数返回类型
Table of Contents1. c++11之前不支持auto关键字2. c++11支持auto关键字2.1. 但是不能自动推断函数返回类型2.2. 使用-> decltype来声明返回类型3. c++14让事情又回到简单4. 我们该使用哪个c++版本1 c++11之前不支持auto关键字下面的代码在c++11中是不支持的auto add(int a, int b) { int i =原创 2015-12-27 10:25:46 · 7826 阅读 · 0 评论 -
c++14可以直接书写二进制字面常量了
Table of Contents1. 直接书写二进制字面常量1 直接书写二进制字面常量c++14带来了0b或者0B开头表示二进制串的字面常量方式, 成为binary literals. 如下代码void WriteBinaryLiterals() { size_t i = 42; size_t j = 0b101010; cout << (i == j) << endl;}运行结原创 2015-12-27 13:51:21 · 6273 阅读 · 3 评论 -
c++14对内存分配性能的重大优化
Table of Contents1. 本质需求2. 存在的问题3. 解决方案简述, C++14标准对内存优化的描述修改, 会让编译器引入类似TCMalloc的内存分配优化策略, 而不拘泥于原来的有一个new语句,就分配一次内存的傻傻的情况. 因此有理由相信用C++14的编译器编译出来的c++程序在内存分配上性能会有较多提升. 下面的文字来源于clang编译器提供的文档, 我对其主要内容进行了意译原创 2015-12-27 16:12:31 · 3521 阅读 · 3 评论 -
C++14整数最大/小值
Table of Contents1. 如何获取最大值1.1. C++14的方法1.2. 如何自己实现最大值1.3. 如何自己实现最小值1 如何获取最大值1.1 C++14的方法std::cout << "int\t" ::lowest() << '\t' ::max() << '\n';输出结果为:int -2147483648 21474836471.2 如何自己实现最大值int原创 2016-01-14 10:39:44 · 3212 阅读 · 1 评论 -
C++内存检查工具valgrind
安装apt-get install valgrind注意在Ubuntu 16.10上,需要python2为默认python版本。运行启动C++程序前加上valgrind即可。valgrind ./builder/bin/wind_tunnel_d -c ./config_pdc.js检查报告C-c C-c退出进程,可以看到如下报告:==16085== Memcheck, a memory erro原创 2017-08-01 15:01:31 · 1670 阅读 · 0 评论