随笔分类 - C++
摘要:通过调用栈逆推定位到是__Mtx_lock失败后导致调用std::Throw_C_errorVS崩溃栈解析位置是_Lock_attempt_small确定崩溃位置其实是在_Lk0.lock()内分析std::mutex,进入_Mutex_Base最后确定是_Check_C_Return(_Mtx_l
阅读全文
摘要:https://blog.csdn.net/fl2011sx/article/details/119452341
阅读全文
摘要:左值与右值 什么是左值?什么是右值? 在C++里没有明确定义。看了几个版本,有名字的是左值,没名字的是右值。能被&取地址的是左值,不能被&取地址的是右值。而且左值与右值可以发生转换。 我个人的理解就是在当前作用域下右值是个临时变量。 举例如下:https://blog.csdn.net/wangsh
阅读全文
摘要:根据《STL源码剖析》这段节选描述,实现如下代码进行测试 经过测试,的确有拷贝构造。 修改下 这点不符合STL描述,依旧调用了copy constructor
阅读全文
摘要:在2.13小节destory()第二版本接受两个迭代器找出元素类型,代码如下 其中value_type()判断出类型,__type_traits判断是否存在trivial destructor 在3.7详细介绍如何实现。__type_traits我记得在muduo内见到过这个实现。
阅读全文
摘要:https://www.jianshu.com/p/6e9cfa25be2f
阅读全文
摘要:http://www.360doc.com/content/14/1120/21/203028_426770242.shtml
阅读全文
摘要:http://www.knowsky.com/1055543.html 显示volatile保证可见性。大致实现就是被该关键字修饰的变量每次写操作都会保证写到内存而非单纯寄存器,每次读操作都会保证从内存读出而非读寄存器里的副本。 其次就是CAS技术,每次写操作都会比较内存现有值和旧值是否一致,不一致
阅读全文
摘要:最近研究了下glog使用autotools编译方法的脚本文件,略有所得 configure.ac AC_INIT初始化一些信息 Package Version ReportBug AC_CONFIG_MACRO_DIR([m4])加载 m4目录下的规则脚本 应该需要aclocal一下先,把规则集成到
阅读全文
摘要:从STL源码剖析中看到了operator new的使用 从而开始研究一下这两个操作符 首先其实迷惑的是"::"的作用,通过以下代码测试出来了 运行结果 用于区分全局函数和函数内局部函数的符号。 参考文章 C++ 内存分配(new,operator new)详解 (有些和我尝试的不一样,第四节可以着重
阅读全文
摘要:allocator必要接口: 自定义allocator,书上说此空间配置其完全无法应用于SGI STL allocator,但是现在应该修改了,默认的空间配置器也是std::allocator //2jjalloca.h //main.cpp 运行结果也是正常的 >现在由此引申出一个问题,opera
阅读全文
摘要:主要是需要某种特殊的东西来代表一整组操作 代表一整组操作的当然是函数,过去通过函数指针实现 所以STL算法的特殊版本所接受的所谓条件或策略或一整组操作都以仿函数的形式呈现 运行结果
阅读全文
摘要:标题以上分别对于++/--/*
阅读全文
摘要:其实没啥体悟,因为还没有感受到这些例子的作用,记一下先 以下用于验证class template内能否在有template 测试template参数可否根据前一个template参数而设定默认值 运行结果: 先成员变量构造,再构造函数。 //注释说测试class template可否拥有non-ty
阅读全文
摘要:class template的一般化设计之外,特别针对某些参数做特殊设计 一开始没有找到一般设计和特殊设计有啥关联性,进行一下修改 编译报错 这才意识到,是先定义了一般设计,才会有特殊设计,且特殊设计满足一般设计的格式,不过编译器在匹配时,会匹配最类似的。 比如 上述程序的运行结果是 而非 如果注释
阅读全文
摘要:可以看到每个T不同,程序都申请了一个静态变量。 单纯写了一个template class并没有任何用,只有使用到testClass<int>时,编译器才会帮助生成class testClass<int>(类似于帮忙写了这段代码),由编译器编译这段代码才会申请变量。 一开始写的时候以为是由templa
阅读全文
摘要:1.测试vector是否自动释放分配的空间 vector有大致两类申请空间的方式,一是vector(n,T()),一是vector(p,p+n)(p是自己申请的空间的指针)。 其中第一种估计肯定会释放,第二种会不会释放p? 测试结果为不会,电脑直接运行卡死。 2.vector(p,p+n)是直接使用
阅读全文
摘要:C++异常机制的执行顺序。 在构造函数内抛出异常 /* * ExceptClass.h * * Created on: 2018年1月2日 * Author: jacket */ #ifndef EXCEPTCLASS_H_ #define EXCEPTCLASS_H_ #include <iost
阅读全文
摘要:比如 的const是修饰什么的? 其实是修饰this指向的对象的。 这篇文章很详细的说明了const的作用,其中第三点说明了这种const的作用:const的用法,特别是用在函数前面与后面的区别! 在该函数Fun()内不能进行对成员变量的修改,调用非const的成员函数也不行
阅读全文
摘要:输出是1。说明调用的是父类的函数。 输出是2。说明调用的是子类的函数。 所以当父类的函数是虚函数,调用的会是子类函数。
阅读全文