Skip to content

为什么智能指针和原始指针要混着用? #233

Answered by hyv1001
Lafinger asked this question in Q&A
Discussion options

You must be logged in to vote

理论上游戏引擎底层会提供智能指针,垃圾回收和内存管理等相关内容,但这方面的需要的开发工作量比较大,并且对架构设计上有比较高的要求, 小引擎这边暂时还没有足够的人力去设计和实现这些系统,所有暂时采用STD的smart pointer来做资源管理。
项目中混用了raw pointer一般来说有以下原因:

  1. 部分代码还没有清理完成,后续会逐步清理成smart pointer
  2. 反射相关代码还不支持smart pointer,所以部分代码还是用 raw pointer
  3. 第三方库相关的代码:由于STD中的smart pointer具有传播性,导致基本上所有的接口都要被污染,而第三方库返回的一般是raw pointer

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by Ol6rin
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
enhancement New feature or request
2 participants
Converted from issue

This discussion was converted from issue #217 on June 01, 2022 13:42.