摘要:
一、问题 在vim的编辑模式下,我之前一直以为只能进行字符的插入操作,但是意外看到可以在编辑模式下通过ctrl-w来前向删除一个单词,并且可以通过ctrl-h来前向删除一个字符。根据通常的ASCII码内置控制方法,通过ctrl-h对应的是ASCII码的BS(backspace)字符,所以通过ctrl 阅读全文
摘要:
一、问题 在新的C++标准中,auto的应用范围越来越广,但是比较常用的典型场景在于使用一个auto接收一个函数的返回值。问题是对于一个函数的auto返回值,这个返回值是如何确定的?特别是一个函数有多个返回值的时候。直观上的理解是当一个函数体(function body)解析(parse)完成之后, 阅读全文
摘要:
一、问题 在使用gdb7.3.1调试进程的时候,出现提示不识别一些类型(gdb) ptype Functional._M_invokertype = int (*)(const std::_Any_data &, <unknown type in /home/tsecer/std.function/ 阅读全文
摘要:
一、问题 对于一个在C++创建的类对象,lua中如何调用这个对象的C++接口?进一步,如果我们想在lua中实现对这个C++类的接口扩展,该如何实现? 二、lua对于类似于C++中meta类型的支持 在lua中,为了模拟对于C++中面向对象中一个类接口的支持,提供一个专门的"NameSpace:fun 阅读全文
摘要:
一、在lua中使用面向对象的问题 在软件实现中,一个对象通常有一个handle,在C/C++语言中最为常见的指针也可以看做是一个handle。在和操作系统交互时,这个handle就可能是一个文件的描述符。当C++和lua交互时,同样需要一个handle作为某个对象(object)的标识。lua支持的 阅读全文
摘要:
一、gdb中record命令的功能 在有些时候,程序运行到某个阶段出现了异常,例如堆栈发生了破坏,此时希望有一个“时光机”能反方向执行,直到首次发生异常的地方。当然,如果是内存修改,其实可以使用watch这个更简单高效的命令来实现,这可能也是这个命令不怎么常见的一个原因吧。不论如何,这个命令还是有点 阅读全文
摘要:
一、为什么使用varint编码 在常规的TLV(TAG Length Value)编码格式中,我们注意到其中有一个必然存在的Length字段。这个就是管理的成本,也就是为了实现管理,管理结构本身也会带来消耗。对int这种最为常见的类型来说,通常现实生活中的自然数范围都比较小,所以定长的4个字节表示1 阅读全文
摘要:
一、问题的原因 也不知道是更新gcc版本的原因,还是由于代码修改包含了特殊头文件,导致在新的环境中YouCompleteMe插件(以后简称为ycm)无法进行智能提示,即使对于最简单基础的vector等容器也识别错误,这个对于这么一个杀手级的应用来说就太不应该了。关键是这样就导致整个开发环境的使用就很 阅读全文
摘要:
一、unreal文档中说明的层级关系 其实unreal文档对该内容有说明File HierarchyThe configuration file hierarchy is read in starting with Base.ini, with values in later files in th 阅读全文
摘要:
一、问题的背景 在某些情况下,我们希望对C中的特定函数执行时间进行统计,当然比较简单的方法就是在这个需要进行profile的函数添加一个函数局部变量,并在构造和析构函数的时候的时间差来作为整个函数的执行时间。如果这种需要统计的函数比较多,那么这种手动添加起来就比较麻烦,此时就考虑到了gcc编译器提供 阅读全文