12 2015 档案
摘要:C++是个语法特别复杂的语言,在语法分析中时常会出现歧义,例如嵌套模板参数歧义问题: 在有的编译器上会被解析为vector< vector < int vec,也就是把 当成右移操作符了,不过C++11已经解决这个问题了。咋解决的呢,简单地说,编译器把对 的分析延迟到语法分析阶段(原来是在词法分析阶...
阅读全文
摘要:前言 垃圾收集器是一种动态存储分配器,它自动释放程序不再需要的已分配的块,这些块也称为 垃圾 。在程序员看来,垃圾就是不再被引用的对象。自动回收垃圾的过程则称为 垃圾收集(garbage collection) 。在一个支持垃圾收集的语言中,程序显式地申请内存,但从不需要显式的释放它们。垃圾收集器会
阅读全文
摘要:文章也发布在 "听风过境的专栏" “free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区”。 如果我接着问你自由存储区与堆有什么区别,你或许这样回答: “malloc在堆上分配的
阅读全文