c++
天蓝控
这个作者很懒,什么都没留下…
展开
-
C++程序coredump排查经验
少用exception,避免内存不合预期的释放导致内存写入问题内存问题排查:考虑空间提前释放原创 2020-07-22 21:53:37 · 647 阅读 · 0 评论 -
boost property_tree read_json coredump
项目中使用boost::property_tree::read_json引发coredump,几乎是稳定复现,而且每次core也基本都在同一个地方但是,怎么看也不太像会出core的样子,所以就朝着内存写飞的方向排查了。搞了一上午的valgrind,最终还是报错这个问题之前也遇到过,试了几次安装libc6-debug也没搞定。好吧,终于想起来请教大牛了,大牛反馈这个不好搞;要hack valgrind的源码,改几个宏定义才能用;而且valgrind不好用,你用火焰图吧大牛建议我使用jemalloc原创 2020-06-08 14:19:46 · 600 阅读 · 0 评论 -
闭包和lambda表达式的区别
闭包是lambda表达式运行时产生的对象。闭包之于lambda表达式正如实例至于类。原创 2019-12-06 19:34:17 · 261 阅读 · 0 评论 -
std::any——C++弱类型特性
std::any 用于包裹任何类型的指针原创 2017-10-31 17:10:53 · 4209 阅读 · 0 评论 -
boost signal2
可用以实现事件广播原创 2017-11-01 18:04:14 · 209 阅读 · 0 评论 -
gcc attribute机制
__attribute__ ((constructor)) 保证函数在main之前执行原创 2017-10-31 16:29:23 · 275 阅读 · 0 评论 -
c++ 多态的实现
什么是多态简单地说,就是允许将子类的指针赋值给赋值给基类的指针实现依赖于编译器给每个包含了虚函数的类增加的虚拟表virtual table来实现调用虚函数时,首先查虚表如 class A : public B 表示A继承B,B中定义了虚函数B* b = new A;A实例的内存起始部分和B的内存格局相同,这样当调用b->foo()时(foo为虚函数,A对foo进行了覆写),其实就是调用了A中对foo原创 2017-10-06 19:29:29 · 151 阅读 · 0 评论 -
c++ 右值引用
什么是右值 Generally, rvalues are values whose address cannot be obtained by dereferencing them, either because they are literals or because they are temporary in nature (such as values returned by functi原创 2017-10-06 19:08:44 · 227 阅读 · 0 评论 -
dynamic_cast vs static_cast
static_cast是编译器转换,如果能确定转换成功的话,采用static_cast运行效率更高dynamic_cast也能达到从基类指针转为子类指针的效果,但是转换是发生在运行时,相比与static_cast效率会较低未完待续…原创 2017-09-12 09:46:21 · 224 阅读 · 0 评论 -
type_info::before的用途
Compare order of types Returns whether the type precedes the type identified by rhs in some implementation-specific order.这是cplusplus.com 网站给的解释 bool before(const type_info& rhs) const; Effec原创 2017-03-16 19:35:37 · 1030 阅读 · 0 评论 -
c++ linker warning: defined in discarded section
/usr/bin/ld: .gnu.linkonce.t._ZN5boost8signals25slot0IvNS_8functionIFvvEEEED1Ev' referenced in section.gnu.linkonce.r._ZN5boost8signals25slot0IvNS_8functionIFvvEEEED1Ev’ of ./libut_doraemon.a(ut_doraem原创 2017-03-16 20:26:39 · 2243 阅读 · 0 评论