C++用了这么多年,这个却第一次知道,以前没用过hpp 这样: // foo.hpp void foo() { /* body */ } // a.cpp #include "foo.hpp" // b.cpp #include "foo.hpp" 出现错误:mutiple definition 解决办法1: // foo.hppvoid foo();// foo.cppvoid foo(){/* body */}// a.cpp#include"foo.…
Linux Slab分配器(一)--概述 Linux slab 分配器剖析 C++库研究笔记——内存池实现 做了一些测试:发现linux使用内存池与否没有明显差别,仅仅有2倍. Linux内存处理机制已经很好,一般情况下,确实没有必要在用内存池??? 不知道大家持什么样的观点. 速度测试: In [use pool]:0.00560116768 seconds In [ no pool]:0.00855708122 seconds In [use pool]:0.00404405594 seco…
当试图用 srand(time(0)) rand() 生成一组随机数时发现,生成的数字很多都是「一样」的 经过测试:srand(seed); rand() 生成随机数,当seed一样时,生成的随机数相同. 所以上述「一样」的问题应该出在time(0) 所以最后采用的方式是:sleep+ 高精度计时,+srand(gettime_function) +rand() 不过, 把gettimeofday换成更高精度可能效果更好 代码如下(Linux下) #include <stdlib.h> //…
目标: 已知这个接口: std::vector<double> add_vec(double *d1, double *d2) { ..... return result; } 我们自定义了这个类: class array { int size_; double *data_; .... }; 要求实现: array v1(10), v2(10); add_vec(v1, v2); 留意到,当array 类型传入add_vec时,会遇到(double*) 类型的“试探性”强制转换, 所以,我们…
6.47 Function Names as Strings:http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html GCC provides three magic variables that hold the name of the current function, as a string. The first of these is __func__, which is part of the C99 standard: The id…
用__attribute__((deprecated)) 管理过时代码.同一时候保留兼容的接口 Linux下: #define DEPR_AFTER __attribute__((deprecated)) #define DEPR_BEFOR class DEPR_BEFOR AAA { }DEPR_AFTER; int main(int argc, char** argv) { typedef float T; AAA aa; return 0; } g++ main.cpp -o main…
用Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过.看了下问题,报的是以下错误: MARK:解决方法:在building Setting 中设置bitCode 为NO file:///Users/libtop/Desktop/屏幕快照%202016-04-14%2011.17.15.png ld: ‘/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)’does…
常变现为** No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so', needed by ××× vtk库的bug导致,目前尚未修复. 可在CMakeLists.txt中加入如下代码解决: list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")…
OpenJDK源码研究笔记系列文章,是我在阅读OpenJDK7源码的过程中的一些体会.收获.看法. 把研究过程中的成长和收获一点点地整理出来,是对自己研究学习的一个小结,也有可能给学习Java的一些同学带来一些启发. 我打算每篇只讲解一点,这样篇幅较小,读起来没有太大压力. 写起来压力也小,抽出10到20分钟就可以写1篇. 本篇简要介绍,方法(函数)体内的参数检查,遇到不合法的输入参数时,抛出带关键错误提示信息的异常. /** * Initializes a new instance of th…
android studio 创建了一个Module生成jar包,这个module中有引用一些第三方的类库,比如 gson,volley等. 但是生成的jar包里,并没有将gson,volley等第三方类库放入.错误如下: 主要原因是在生成jar时候没有把第三方引用进去,所以在生成jar 需要把第三方的类库include进去,如下代码: //Copy类型 task makeJar(type: Copy) { //删除存在的 delete 'build/libs/test-sdk.jar' //设…