草庐IT

weak_intrusive_pointer

全部标签

std::weak_ptr<void>绑定到std::shared_ptr<T>

最近在忙自己的研究生科研工作和尽量在不看源码的情况下写一个玩具版的muduo(我已经看过陈硕的《Linux多线程服务端编程:使用muduoC++网络库》,相当于按自己的理解再写一遍),没太有时间写C++对象模型的后面部分,等组会开完后再继续写。今天就写一下几天前看到的一个小技巧,也即标题:std::weak_ptr绑定到所有类型的std::shared_ptr。std::weak_ptr我们知道weak_ptr目的是为了防止只使用std::shared_ptr导致的循环引用,从而导致内存泄漏。一个经典的例子如下:#include#include#include#includeclassChil

std::weak_ptr<void>绑定到std::shared_ptr<T>

最近在忙自己的研究生科研工作和尽量在不看源码的情况下写一个玩具版的muduo(我已经看过陈硕的《Linux多线程服务端编程:使用muduoC++网络库》,相当于按自己的理解再写一遍),没太有时间写C++对象模型的后面部分,等组会开完后再继续写。今天就写一下几天前看到的一个小技巧,也即标题:std::weak_ptr绑定到所有类型的std::shared_ptr。std::weak_ptr我们知道weak_ptr目的是为了防止只使用std::shared_ptr导致的循环引用,从而导致内存泄漏。一个经典的例子如下:#include#include#include#includeclassChil

老生常谈的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

DVWA靶场实战(九)——Weak Session IDS

DVWA靶场实战(九)九、WeakSessionIDS:1.漏洞原理:  WeakSessionIDS也叫做弱会话,当用户登录后,在服务器就会创造一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带Session去访问。  SessionID作为特定用户访问站站点所需要的唯一内容。如果能够计算或轻易猜到该sessionID,则攻击者将可以轻易的获取访问控制权,无需登录直接进入特定用户界面,进而进行其他操作。  用户访问服务器的时候,在服务器端会创造一个新的会话(session),会话中会保存用户的状态和相关信息,用于标识用户。  服务器端维护所有在线用户的sess

DVWA靶场实战(九)——Weak Session IDS

DVWA靶场实战(九)九、WeakSessionIDS:1.漏洞原理:  WeakSessionIDS也叫做弱会话,当用户登录后,在服务器就会创造一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带Session去访问。  SessionID作为特定用户访问站站点所需要的唯一内容。如果能够计算或轻易猜到该sessionID,则攻击者将可以轻易的获取访问控制权,无需登录直接进入特定用户界面,进而进行其他操作。  用户访问服务器的时候,在服务器端会创造一个新的会话(session),会话中会保存用户的状态和相关信息,用于标识用户。  服务器端维护所有在线用户的sess

鼠标拖动绘制矩形pointer-events: none

需求是这样的:在页面的预览图上面绘制一个矩形,画完立即保存,右上角出现一个删除按钮,要立即可以删除。一开始的思路是使用canvas去实现,把一个透明的画布放在预览图上,滚动的时候,红框就会随着这个画布滚动。那么用一个透明的canvasabsolute在画布上是行不通的。然后我就在想那生成一个canvas的高度是整个预览图的长度吧。但是思考了下,我们的场景预览图可能会有几百几千张,那么生成一个这么长的canvas好像也有点不太好。并且生成了canvas,虽然也可以绘制一个删除按钮,实现点击,但也无法实现底层预览图上面红框悬浮效果了。怎么想这里使用canvas去绘制矩形框都是一个又复杂性能又差的方

鼠标拖动绘制矩形pointer-events: none

需求是这样的:在页面的预览图上面绘制一个矩形,画完立即保存,右上角出现一个删除按钮,要立即可以删除。一开始的思路是使用canvas去实现,把一个透明的画布放在预览图上,滚动的时候,红框就会随着这个画布滚动。那么用一个透明的canvasabsolute在画布上是行不通的。然后我就在想那生成一个canvas的高度是整个预览图的长度吧。但是思考了下,我们的场景预览图可能会有几百几千张,那么生成一个这么长的canvas好像也有点不太好。并且生成了canvas,虽然也可以绘制一个删除按钮,实现点击,但也无法实现底层预览图上面红框悬浮效果了。怎么想这里使用canvas去绘制矩形框都是一个又复杂性能又差的方