会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
订阅
管理
随笔 - 54 文章 - 0 评论 - 184 阅读 -
58万
上一页
1
2
3
4
5
6
下一页
2014年12月12日
再说 c++11 内存模型
摘要: ##**可见性与乱序**在说到内存模型相关的东西时,我们常常会说到两个名词:乱序与可见性,且两者经常交错着使用,容易给人错觉仿佛是两个不同的东西,其实不是这样,他们只是从不同的角度来描述一个事情,本质是相同的。比如说,我们有如下代码:```cppatomic g_payLoad = {0};atom...
阅读全文
posted @ 2014-12-12 16:45 twoon
阅读(8183)
评论(1)
推荐(1)
编辑
2014年10月4日
c++ 模板元编程的一点体会
摘要: 趁着国庆长假快速翻了一遍传说中的、大名鼎鼎的 *modern c++ design*,钛合金狗眼顿时不保,已深深被其中各种模板奇技淫巧伤了身。。。论语言方面的深度,我看过的 c++ 书里大概只有 *insight c++ object model* 能与之一战吧?难怪 Herb 老喜欢调侃 Andr...
阅读全文
posted @ 2014-10-04 22:57 twoon
阅读(11590)
评论(3)
推荐(0)
编辑
2014年9月15日
Haskell 与范畴论
摘要: 说到 Haskell,这真是一门逼格极高的编程语言,一般初学者如果没有相关函数式编程的经验,入门直接接触那些稀奇古怪的概念,简直要跪下。现在回想起来,隐隐觉得初学者所拥有的命令式编程语言(imperative programming language)相关的知识和经验反而成了负担,若能抛掉以往固有的...
阅读全文
posted @ 2014-09-15 21:54 twoon
阅读(12764)
评论(16)
推荐(7)
编辑
2014年8月23日
小试 boost spirit
摘要: 解释文本文件是日常编程中太平常的一件事情了,一般来说,土鳖点的做法可以直接手写 parser 用循环暴力地去 map 文本上的关键字从而提取相关信息,想省力一点则可以使用 tokenizer 或正则表达式之类的工具,无论怎样,总的来说,手写 parser 去解释文本基本是件苦力活:写出的代码比较难重...
阅读全文
posted @ 2014-08-23 19:38 twoon
阅读(8405)
评论(3)
推荐(2)
编辑
2014年8月3日
DWARF 中的 Debug Info 格式
摘要: 本周花了几天的时间来研究怎么在 breakpad "[1" , "2" ] 中加入打印函数参数的功能,以期其产生的 callstack 更具可读性,方便定位崩溃原因。现代 ELF 中的调试信息基本是以 DWARF 格式为主了,因此这几天的研究也主要将时间花在了理解 DWARF 这货是怎么工作上,感叹...
阅读全文
posted @ 2014-08-03 18:15 twoon
阅读(13206)
评论(7)
推荐(1)
编辑
2014年7月27日
linux 下动态链接实现原理
摘要: 符号重定位 讲动态链接之前,得先说说符号重定位。 c/c++ 程序的编译是以文件为单位进行的,因此每个 c/cpp 文件也叫作一个编译单元(translation unit), 源文件先是被编译成一个个目标文件, 再由链接器把这些目标文件组合成一个可执行文件或库,链接的过程,其核心工作是解决模块间各
阅读全文
posted @ 2014-07-27 21:28 twoon
阅读(19344)
评论(3)
推荐(7)
编辑
2014年6月29日
c++11 内存模型解读
摘要: 关于乱序 说到内存模型,首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序通常并不是总按着照源码中的顺序一一执行,此谓之乱序,乱序产生的原因可能有好几种: 1. 编译器出于优化的目的,在编译阶段将源码的顺序进行交换。 2. 程序执行期间,指令流水被 cpu 乱序执行。 3. inhe...
阅读全文
posted @ 2014-06-29 17:37 twoon
阅读(13864)
评论(9)
推荐(3)
编辑
2014年6月15日
模板中的名字查找问题
摘要: 问题起源 先看下面很简单的一小段程序。 这段代码在 GCC 下很意外地编译不过,原因竟然是找不到 fun 的定义,可是明明就定义在基类中了好吗!为什么视而不见呢?显然这和编译器对名字的查找方式有关,那这里面究竟有什么玄机呢?上述代码是写得不规范,还是 GCC 竟然存在这样愚蠢而又莫名其妙的 bug...
阅读全文
posted @ 2014-06-15 16:29 twoon
阅读(1995)
评论(5)
推荐(0)
编辑
2014年5月17日
基于ε-NFA的正则表达式引擎
摘要: 正则表达式几乎每个程序员都会用到,对于这么常见的一个语言,有没有想过怎么去实现一个呢?乍一想,也许觉得困难,实际上实现一个正则表达式的引擎并没有想像中的复杂,《编译原理》一书中有一章专门讲解了怎么基于状态机来构建基本的正则表达式引擎,它讲这个初衷是为词法分析服务,不过书里的东西相对偏理论了些,实现起...
阅读全文
posted @ 2014-05-17 20:03 twoon
阅读(9324)
评论(0)
推荐(1)
编辑
2014年4月7日
c++ 异常处理(2)
摘要: 前面一篇博文简单介绍了 c++ 异常处理的流程,但在一些细节上一带而过了,比如,_Unwind_RaiseException 是怎样重建函数现场的,Personality routine 是怎样清理栈上变量的等,这些细节涉及到很多与语言层面无关的东西,本文尝试介绍一下这些细节的具体实现。 相关的数据
阅读全文
posted @ 2014-04-07 21:57 twoon
阅读(10903)
评论(0)
推荐(8)
编辑
上一页
1
2
3
4
5
6
下一页
昵称:
twoon
园龄:
12年1个月
粉丝:
209
关注:
5
+加关注
<
2025年3月
>
日
一
二
三
四
五
六
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
搜索
最新随笔
1.X86 Linux 下 SIGBUS 总结
2.gohook 一个支持运行时替换 golang 函数的库实现
3.一个由进程内存布局异常引起的问题
4.zmq 学习笔记
5.一种高效的 vector 四则运算处理方法
6.实现无锁的栈与队列(5):Hazard Pointer
7.左值右值的一点总结
8.实现一个 Variant
9.c++ 相关的技术资源整理归类
10.c++ 全局变量初始化的一点总结
我的标签
c++
(16)
lock free
(7)
stack
(5)
linux
(5)
c++11
(5)
queue
(4)
无锁队列
(4)
无锁
(4)
rvalue
(3)
library
(3)
更多
随笔档案
(54)
2019年6月(2)
2017年2月(1)
2016年9月(1)
2016年7月(1)
2016年3月(1)
2015年12月(1)
2015年10月(2)
2015年3月(1)
2014年12月(1)
2014年10月(1)
2014年9月(1)
2014年8月(2)
2014年7月(1)
2014年6月(2)
2014年5月(1)
2014年4月(1)
2014年3月(3)
2014年1月(2)
2013年12月(5)
2013年10月(1)
2013年8月(2)
2013年7月(2)
2013年6月(2)
2013年5月(5)
2013年3月(3)
2013年2月(3)
2013年1月(6)
更多
评论排行榜
1. 一个由进程内存布局异常引起的问题(18)
2. Haskell 与范畴论(16)
3. c++11 中的 move 与 forward(16)
4. 说说尾递归(10)
5. c++11 内存模型解读(9)
推荐排行榜
1. 一个由进程内存布局异常引起的问题(31)
2. 说说尾递归(21)
3. c++中的左值与右值(19)
4. c++ 全局变量初始化的一点总结(13)
5. c++11 中的 move 与 forward(11)
最新评论
1. Re:c++11 中的 move 与 forward
支持,写的通俗易懂
--大水怪!
2. Re:c++ 全局变量初始化的一点总结
写得确实详细且深入,学习并引用,Thank you!
--runningsword
3. Re:左值右值的一点总结
写得太好了
--当年明凯
4. Re:c++ 全局变量初始化的一点总结
Construct On First Use 段落的 get_global_x() 函数的返回类型写的不对呀,应该是返回局部静态对象的引用类型才正确呀,如果是以值类型返回,返回的将会是局部静态对象的一...
--ltimaginea
5. Re:c++中的左值与右值
www.zhongguanjituan.cn/
--延俊
点击右上角即可分享