当前位置: 首页 > article >正文

源码理解 UE4中的 FCookStatsManager::FAutoRegisterCallback RegisterCookStats

官方文档:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/API/Runtime/Core/ProfilingDebugging/FCookStatsManager

文档中的注释:
When a cook a complete that is configured to use stats (ENABLE_COOK_STATS), it will broadcast this delegate, which, when called, gives you a TFunction to call to report each of your stats.

代码:
FCookStatsManager::FAutoRegisterCallback RegisterCookStats([](FCookStatsManager::AddStatFuncRef AddStat)
{ ……

首先,RegisterCookStats是一个全局(非静态)变量,它的类型是 FCookStatsManager::FAutoRegisterCallback ,它调用的初始化器是 ( []()...  ) ,也就是说,传入了一个lambda函数,作为初始化器的参数。

那么看FCookStatsManager::FAutoRegisterCallback的声明如下,可以得知,所有声明一个 FCookStatsManager::FAutoRegisterCallback 结构体,本质上就是给 static CookStatsCallbacks 静态变量添加元素(也就是该lambda方法)。

/** Use this to register a callback to gather cook stats for a translation unit. When a cook is finished, this delegate will be fired. */
static CORE_API FGatherCookStatsDelegate CookStatsCallbacks;

/** Called after the cook is finished to gather the stats. */
static CORE_API void LogCookStats(AddStatFuncRef AddStat);

/** Helper struct to auto-register your STATIC FUNCTION with CookStatsCallbacks */
struct FAutoRegisterCallback
{
    template<typename Func>
    explicit FAutoRegisterCallback(Func Callback)
    {
       CookStatsCallbacks.AddLambda(Callback);
    }
};


http://www.kler.cn/a/467444.html

相关文章:

  • salesforce 可以为同一个简档的同一个 recordtype 的对象设置多种页面布局吗
  • jenkins入门9--参数化构建
  • 1-markdown转网页样式页面 --[制作网页模板] 【测试代码下载】
  • 《探秘计算机视觉与深度学习:开启智能视觉新时代》
  • 【软考网工笔记】计算机基础理论与安全——网络安全
  • jQuery get 方法内操控vue变量(异步ajax请求方法中操控双向绑定的响应式变量)实现异步请求函数内完成变量的双向响应式绑定
  • MySQL数据结构选择
  • 13-Gin 中使用 GORM 操作 mysql 数据库 --[Gin 框架入门精讲与实战案例]
  • 软件测试面试题(一)
  • AI来帮忙:蛋白纯化不用慌
  • 网关的主要作用
  • 跨链多链与非托管交易结合:ANEX协议为区块链资产去中心化管理提供创新解决方案
  • C++ 中 Unicode 字符串的宽度
  • React知识盲点——组件通信、性能优化、高级功能详解(大纲)
  • LE Audio 初探
  • 语义搜索的交互范式
  • SpringBoot整合springmvc、扩展springmvc
  • JAVA异常处理练习
  • Xshell 8 最新中文免安装绿色版
  • pikachu - 暴力破解
  • AI时代的在线教育系统:源码如何赋能智能学习平台
  • 【C++动态规划】983. 最低票价|1786
  • 求第n个12345排列数
  • TSN 时隙调度思辨:从广域网症结到网络中立权衡
  • USB射频微波功率计的功能与优势-盛铂科技
  • lenovo联想IdeaPad 15sIML 2020款(81WB)笔记本电脑原装出厂OEM预装系统Windows10镜像下载