反汇编调研this offset和vtable thunk

TL;DR 在类设计含有多重继承的内存布局下,对象的this指针是存在编译器隐含的偏移修正行为 现象如下: 首个base class并不需要修正,因为内存布局与derived class是重叠共用的,无论有无vptr的介入 其它base class由编译器修正this指针,需要付出轻微的运行时成本(多一条加法指令) 如果derived class隐藏了ba

实现lockfree容器:freelist,stack和queue

实现一个xyz系列算是本博客的月指活了,这次写的是lockfree容器(硬核程度越来越高,以后咋低成本水文章啊) 声明 不建议自己从零造lockfree轮子,至少需要有paper支撑,或者从已有的项目中改进 否则无法证明代码是正确的 为此本文参考了模板库boost::lockfree的实现以及MS Queue的paper(Simple, Fast, and

浅谈C++内存模型

声明 本文章是从较为实际的角度去分析C++内存模型,涉及到memory order,modification order和release sequence 虽然内容和概念相比于标准是有所删减的,但我希望这篇文章相比cppreference是更易于理解的 (更多…)