最新内容

博文目录可以找到所有博文

std::function的Const正确性问题

2019年12月31日

const 类型限定符(type qualifier)是C++语言设计的一大亮点。我们围绕着这个语言特性使用“ const 正确性” (const correctness)的实践来防止 const 对象遭到改变。“ const 正确性”的规则对大多数的类的实现都不难被遵守。但是对使用到类型擦除(type erasure)的类,“ const 正确性”更难被遵守。不幸的是,因为短见,C…

阅读全文

ACM Siggraph 2019会议小结

2019年8月8日

今年几个在 Trimble SketchUp 的同事与我一起去参加了ACM Siggraph 大会 。这是我第一次参加这种规模的大会。这一周虽然非常辛苦,但我也开阔了眼界并且学到了很多东西。 今年大会的地点在洛杉矶,所以我们有机会去参观渔人码头,品味不同的海鲜,并且欣赏海上的日落。我们也开了一些图形学有关的玩笑, 诸如渔人码头的木头地板是一张置换贴图(displacement map…

阅读全文

X86 "lea" 指令背后的直觉

2019年6月11日

一些朋友们在之前的 北丹佛地区C++聚会 上提到X86指令中的 lea 并不如其他的指令那么好理解。 lea 是“load effective address”的缩写,一般来说被解释为“把某个内存地址从放到目标位置”。在Intel汇编语法下, lea 被写作 举一个例子, 如果我们有一个 struct Point 的数组 points : 当遇到 int x = points[i…

阅读全文

C++ lambda表达式教程

2019年3月25日

C++11引入了lambda表达式,而之后的语言版本不断的对lambda表达式进行改善。lambda表达式表示一个匿名函数。如今,lambda表达式已成为C++语言的核心组成部分,而这篇博文就是给还不了解lambda表达式的C++程序员讲解它的使用方法以及原理。 基本用法 编程中一个常见的任务是将函数作为参数传递给另外的函数。举一个例子,C…

阅读全文