原子vector的一种实现源码(atomic-vector)
来自Facebook的一种实现,源码如下: * +----------------------------------------------------------------------+ | HipHop for PHP
原子vector的一种实现源码(atomic-vector)
来自Facebook的一种实现,源码如下: * +----------------------------------------------------------------------+ | HipHop for PHP
C++ Lock-free Hazard Pointer(冒险指针)
1 Safe Reclamation MethodsFolly 的 Hazard Pointer 实现中有一段注释,详细描述了 C++ 里几种主流的安全内存回收方法,列表如下:优点缺点场景Locking易用读高开销
原因就是CPU不支持相应的指令集导致的。Linux上使用 lscpu 命令查看CPU指令集,看是否支持。比如_mm256_cmpeq_epi64 这个函数需要avx2指令集,但是CPU不支持,就导致程序崩溃起不来。
最近在使用CPU指令集优化代码的时候,编译出错,报错如下: usr lib64 gcc x86_64-suse-linux 7 include avx2intrin h:252:1: error: inlining failed in call to always_i
【解决】This is allowed only when policy CMP0079 is set to NEW.
cmake最低版本设置为3 13以上,可解决。cmake_minimum_required(VERSION 3 13) can fix the first problem 参考:https: gitlab kitware com cmake cmake - issues 19693
编译llvm时,报错:CMake Error at CMakeLists txt:729 (find_package): By not providing "FindPython3 cmake" in CMAKE_MODULE_PATH this project has asked
C、C++混合编译时,C头文件不加 extern "C",函数按照C++编译会改变函数名称,导致link时报undefined reference to `xxx` 的 错误。加 extern "C" 解决,但是直接加的话
【解决】double free or corruption (!prev)
*** glibc detected *** cupd: double free or corruption (!prev): 0x093b1208 ***可能原因:1、多次释放同一内存区,需要检查代码,是否出现了对同一内存区释放两
【解决】munmap_chunk(): invalid pointer
原因:new malloc出来的指针被覆盖掉了,然后delete free就会报这个错误。例如:char* word = (char*)malloc(10);word = "abc"; 应使用 strcpy(word, "abc");free(word)
【解决】asan runtime does not come first in initial library list
报错信息:ASan runtime does not come first in initial library list; you should eitherlink runtime to your applicationor manually preload it with L
namespace “std” has no member “clamp”
error: ‘clamp’ is not a member of ‘std’namespace std has no member clampC++17特性,加编译选项 -std=c++17
‘std::tr1’ does not name a template type
解决方法:添加头文件 if !defined(_MSC_VER) include <tr1 memory> endifC++ Technical Report 1 (TR1)是ISO IEC TR 19768, C++ Library Extensions(函式库扩充)的
protobuf 是结构化数据的系列化 反序列化解决方案,类似XML JSON,但他的运行效率及压缩率均较后者高一个数量级,且完全的跨平台。使用步骤如下:1、定义一个 proto数据结构文件
我们知道Linux即使依赖库和可执行文件在同一目录下,如果不使用 LD_LIBRARY_PATH 指定库路径(即当前目录)的话,仍然会报加载不到依赖库的错误。那么Eclipse CDT也是类似,可
编译错误 error: ‘typeof’ cannot be used as a function
编译一些开源的C项目,发现typeof关键字不能被识别,报错:error: ‘typeof’ cannot be used as a function。解决方法:修改C编译选项 -std=gnu99,使用GNU99