草庐IT

weak_ptr_cast

全部标签

static_cast和dynamic_cast

C++的强制类型转换,除了继承自C语言的写法((目标类型)表达式)之外,还新增了4个关键字,分别是:static_cast、dynamic_cast、const_cast和reinterpret_cast。用法:xxx_cast(表达式)。由于后两者的使用频率较少,尤其是reinterpret_cast的风险性很高,所以就不展开讲了。这里主要将static_cast和dynamic_cast。static_cast解释所谓static_cast,顾名思义,就是静态的转换,是在编译期间就能确定的转换。主要用途用于基本数据类型之间的转换。#includeusingnamespacestd;intm

关于“No loop matching the specified signature and casting was found for ufunc lstsq_n”问题的解决

下面这段代码是使用MatPlotLib绘制数据随时间变化的趋势。importdatetimeasdtimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportmatplotlib.pylabasplbplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来正常显示负号df=pd.DataFrame(columns=('Time','Sales'))start_date=dt.datetim

关于“No loop matching the specified signature and casting was found for ufunc lstsq_n”问题的解决

下面这段代码是使用MatPlotLib绘制数据随时间变化的趋势。importdatetimeasdtimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportmatplotlib.pylabasplbplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来正常显示负号df=pd.DataFrame(columns=('Time','Sales'))start_date=dt.datetim

SpringBoot统一返回处理出现cannot be cast to java.lang.String异常

SpringBoot统一返回处理出现cannotbecasttojava.lang.String异常一问题出现背景:二解决方案三异常原因分析原因:源码详细分析:正常返回:返回为字符串异常一问题出现背景:在使用@RestControllerAdvice和实现ResponseBodyAdvice做controller层统一返回封装时。当返回字符串时会报“cannotbecasttojava.lang.String”异常,返回其他类型就无任何问题。二解决方案如果返回的是字符串直接手动封装返回对象转成json字符串返回即可。完整代码@RestControllerAdvicepublicclassRes

SpringBoot统一返回处理出现cannot be cast to java.lang.String异常

SpringBoot统一返回处理出现cannotbecasttojava.lang.String异常一问题出现背景:二解决方案三异常原因分析原因:源码详细分析:正常返回:返回为字符串异常一问题出现背景:在使用@RestControllerAdvice和实现ResponseBodyAdvice做controller层统一返回封装时。当返回字符串时会报“cannotbecasttojava.lang.String”异常,返回其他类型就无任何问题。二解决方案如果返回的是字符串直接手动封装返回对象转成json字符串返回即可。完整代码@RestControllerAdvicepublicclassRes

智能指针思想实践(std::unique_ptr, std::shared_ptr)

1smartpointer思想​ 个人认为smartpointer实际上就是一个对原始指针类型的一个封装类,并对外提供了->和*两种操作,使得其能够表现出原始指针的操作行为。​ 要理解smartpointer思想首先要了解一个概念RAII(ResourceAcquisitionIsInitialization),直译为资源获取即初始化,核心理念为在对象创建时分配资源,而在对象销毁时释放资源.​ 根据RAII理念,如果对象创建在栈(stack)上,由于栈上的对象在销毁是会自动调用析构函数,因此仅仅需要在构造函数内完成资源分配,而在析构函数内完成资源释放,此时程序员就不需要自己关心资源的释放

智能指针思想实践(std::unique_ptr, std::shared_ptr)

1smartpointer思想​ 个人认为smartpointer实际上就是一个对原始指针类型的一个封装类,并对外提供了->和*两种操作,使得其能够表现出原始指针的操作行为。​ 要理解smartpointer思想首先要了解一个概念RAII(ResourceAcquisitionIsInitialization),直译为资源获取即初始化,核心理念为在对象创建时分配资源,而在对象销毁时释放资源.​ 根据RAII理念,如果对象创建在栈(stack)上,由于栈上的对象在销毁是会自动调用析构函数,因此仅仅需要在构造函数内完成资源分配,而在析构函数内完成资源释放,此时程序员就不需要自己关心资源的释放

老生常谈的iOS- weak原理,你真的懂得还是为了应付面试

前言weak对于iOS开发来说只要解决一些对象相互引用的时候,避免出现强强引用,对象不能被释放,出现内存泄露的问题。weak关键字的作用域弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为nil。weak底层原理1.weak编译解析首先需要看一下weak编译之后具体出现什么样的变化,通过Clang的方法把weak编译成C++编译之后的weak,通过objc_ownership(weak)实现weak方法,objc_ownership字面意思是:获得对象的所有权,是对对象weak的初始化的一个操作。在使用clang编译过程中会报错误,使用下方的方法编码编译出现errorcl

老生常谈的iOS- weak原理,你真的懂得还是为了应付面试

前言weak对于iOS开发来说只要解决一些对象相互引用的时候,避免出现强强引用,对象不能被释放,出现内存泄露的问题。weak关键字的作用域弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为nil。weak底层原理1.weak编译解析首先需要看一下weak编译之后具体出现什么样的变化,通过Clang的方法把weak编译成C++编译之后的weak,通过objc_ownership(weak)实现weak方法,objc_ownership字面意思是:获得对象的所有权,是对对象weak的初始化的一个操作。在使用clang编译过程中会报错误,使用下方的方法编码编译出现errorcl

C++11 智能指针 shared_ptr

C++11智能指针shared_ptrWrittenon2023-01-16个人学习智能指针记录合集:C++11智能指针C++11智能指针shared_ptrC++11智能指针unique_ptrC++11智能指针weak_ptrstd::shared_ptr共享智能指针,也被称为计数智能指针。共享智能指针会记录有多少个共享智能指针指向同一个对象,当这个数为0的时候,程序自动的默认释放(析构)这个对象,记录有多少个的这个方法叫做引用计数。共享智能指针可以有多个共享智能指针同时管理同一个对象。举个栗子普通指针管理#include#includeusingnamespacestd;classPer