【解决】标准库std::min/std::max 与 Windows.h中的宏 min/max 冲突问题
在包含了Windows h的 C++ 源代码中使用std::min std::max会出现错误。int main(){ int x = std::max(0, 1); int y = std::min(-1, 0);}error C2589: &
【解决】标准库std::min/std::max 与 Windows.h中的宏 min/max 冲突问题
在包含了Windows h的 C++ 源代码中使用std::min std::max会出现错误。int main(){ int x = std::max(0, 1); int y = std::min(-1, 0);}error C2589: &
分享一段LinuxC C++程序只能启动一份实例的实现代码,原理是通过文件锁互斥实现,最重要的是考虑了不同用户运行同一程序互斥的场景,已经过充分的测试,可直接用于实际项目开发。
google mock分享(全网最全最好的gmock文档,没有之一)
ContentMatcher(匹配器)基数(Cardinalities)行为(Actions)序列(Sequences)Google Mock 入门概述Google Mock使用Mock实践Google Mock Cookbook什么是Mock?Google Moc
1、使用top命令查看内存占用情况,物理内存占用过高时,也重点看一下Swap交换内存占用情况,如果交换内存也开始被使用了,那一定是程序的内存泄漏导致的,Linux使用valgrind工具跟
fopen 引起的 malloc(): memory corruption的原因分析
其实不一定是fopen引起的,但引起这个异常的真正元凶通常会在fopen附近,而且直到执行fopen时,调用了内部的malloc,才会抛出这个异常, 这个异常通常是由于数组空间的开辟有问题
项目地址:https: github com tsingfun wandbox原项目是日文版的,这里是一个分支版本,添加了一些中文注解,后续可能会部分翻译中中文。官网地址:https: wandbox org ,可以在
项目地址:https: github com libunwind libunwind这里为了简单,不源码编译安装了,暂时先通过包管理器安装:apt-get install libunwinddemo代码如下:
C++简练易用的线程池(threadpool)及上下文隔离的无锁线程池(isolated_threadpool)完整实现
本文主要介绍两种C++线程池模型完整代码,经过实战考验的,效率已极致优化的代码,可直接用于实际项目开发。
介绍了C++常用的几种排序算法:选择排序(SelectSort),冒泡排序(BubbleSort),快速排序(QuickSort),归并排序(MergeSort),堆排序(HeapSort),插入排序(InsertSort),希尔排序(ShellSort)
C/C++头文件string与string.h的区别及Mac平台的特殊性
strlen() 等函数需要string h头文件,不过MacOS下clang编译器比较特殊,必须string,可以用宏区分Mac平台。
调用空智能指针对象的函数,Windows及Linux行为解析
先看结论:Windows下可以调用空智能指针对象的函数,但是函数中访问目标对象的成员变量会崩溃,this指针为nullptr;Linux下Debug版本及不开优化版本也能正常运行,-O0以上优化版本
可以使用std标准函数 offsetof(),在stddef h头文件中,实现原理如下(模拟系统的实现): define MY_STRUCT_OFFSET(s, m) ((size_t)(& ((s*)0)->m ))原理如下:1、0即空指
Reference to ' ' is ambiguous:符号定义重复
Reference to & 39; & 39; is ambiguous 编译错误:从字面上看就是引用某个符号(变量、类名、函数等)的定义不明确,重复。以下为可能的原因及解决方法:1、自定义的变量名
use of deleted function std::unique_ptr 编译错误剖析,你可能少了一个std::move
编译报错日志如下: usr include c++ 4 7 bits stl_construct h:77:7: error: use of deleted function & 39;std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_p
Eclipse C++启用pretty printing,更直观显示stl变量内容
使用Eclipse CDT调试stl变量时,我们关注的变量内容往往需要查看好几层的变量后才能看到,非常的不直观。这里提供一种更优雅地打印stl变量的方法,核心原理是利用python对stl变量
hidden symbol ... is referenced by DSO 剖析
DSO是动态共享对象,Linux报hidden symbol is referenced by DSO错误的原因是符号(函数)未导出导致的,添加导出申明即可解决:__attribute__ ((visibility("default"))
c++快速排序算法实现,经典的一种写法,来自Github,原文有个bug,本文已修正代码如下: include <iostream>void printArray(int *array, int n){ for (int i = 0
volatile防范冲突,提高效率。降低CPU Cache Line锁冲突的几率。不同于普通变量在于:CPU缓存中有值的话,也得从内存中重新加载到缓存(普通变量不会);即认为寄存器值不可靠,