C++Weekly - Code Review: O3DE Game Engine

对宣布开源的3D游戏引擎O3DE的简单Code Review。

A Quick Look At the Source To Amazon's O3DE Game Engine.  (Open source 3D Engine)

之前叫做Lumberyard。

Home - O3DE

1,pull up the code on github,用的是CLion

2,先查看CMake。用的是C++17。

3,需要使用的cmake版本是一个很新的,3.20的版本。但并没有使用新版本才有的features。

4,lizard,一个python工具,能分析多种语言的代码。得到一个report。

5,根据report来找到比较复杂的代码进行分析。找代码复杂度数值比较大的函数,指标是cyclomatic complexity,缩写CCN。

6,可以使用Visual Code进行代码查看。

7,代码里使用了很多C Style Cast.

8,使用了C++11里的foreach。

9,RAII

10,virtual ~CReferenceCnt( ) = default;  ,基类这样定义后,派生类就不用再定义一个virtual的析构函数了。

11,空的析构函数会影响编译器的优化操作,对性能有很大影响。

12,在Visual Code里查找析构函数的正则表达式:  ~[A-Za-z0-9]+\(\)

13, ~SomeClass() override = default; 这种是没有意义的,应该改成 ~SomeClass() = default;  ,更好的是直接删除。

14,  这里有自己的标准库实现,或者包装。implementation or wrapper。fixed vector等。

15,constexpr在C++17和之前版本使用上有些区别。

参考:

1,C++ Weekly

https://www.youtube.com/watch?v=IndGlm2uZCU&list=PLs3KjaCtOwSYh2X7z0mxUbArhW1O4_4z1&index=2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker---数据卷

docker---数据卷 数据卷: 容器与宿主机之间进行数据共享 数据卷是一个供容器使用的特殊的目录,容器的目录和宿主机的目录进行映射,主机和宿主机之间都可以对目录中的文件进行修改,双发同步生效。对镜像也没有影响。宿主机到容器实现数据迁移…

区块链是个啥

区块链算是一个散尽硝烟的热点, 现在说这个,有点冷水里冒热气的感觉。 先百度一下,区块链就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中..…

Docker Compose入门:打造多容器应用的完美舞台

Docker Compose 是一个强大的工具,它允许开发者通过简单的 YAML 文件定义和管理多容器的应用。本文将深入讨论 Docker Compose 的基本概念、常用命令以及高级应用场景,并通过更为丰富和实际的示例代码,助您轻松掌握如何通过 Docker Compose 打…

【08】ES6:运算符的扩展

一、指数运算符 指数运算符(**)返回第一个操作数取第二个操作数的幂的结果。 x ** y2 ** 2 // 4 2 ** 3 // 8指数运算符是右结合的。 a ** b ** c 等于 a ** (b ** c)2 ** 3 ** 2 // 相当于 2 ** (3 ** 2) 512指数运算符可以与等号结合,…

数据结构和算法 - 前置扫盲

数据结构和算法 一、前置扫盲 1、数据结构分类 1.1 逻辑结构:线性与非线性 tip:逻辑结构揭示了数据元素之间的逻辑关系。 线性数据结构:元素间存在明确的顺序关系。 数据按照一定顺序排列,其中元素之间存在一个对应关系&#x…

独立完成软件的功能的测试(5. 完结总结)

独立完成软件的功能的测试(5. 完结&总结) 软件测试的基础理论 1. 什么是软件:控制计算机硬件的工具。2. 什么是软件测试:使用技术的手段,查找软件的缺陷,保证软件的质量3. 软件测试的分类1. 阶段分&am…

Liunx系统挂载磁盘

1.具体步骤 大概五个步骤 添加磁盘磁盘分区格式化分区挂载分区到指定目录设置开机自动挂载 目标将sdb1分区挂载到/data目录 2.添加磁盘 使用lsblk -f命令可以查看当前系统磁盘情况 lsblk -f 可以看到已经有一个磁盘sda,现在我们给虚拟机增加一个磁盘 添加完成后…

数据结构-集合

介绍 数据结构中的集合是一种包含不同元素的数据结构,其中每个元素都是独一无二的,即集合中的元素互不相同且无序。 集合数据结构分类如下: 并集是两个集合的所有部分合并在一起形成的集合;交集是两个集合共同包含的元素组成的集…

数据结构与算法:插入排序

原理 保证区间内排好顺序,逐渐将区间外数据插入到该区间中。 从局部扩散到整体。 第一次:保证0-1范围内有序 arr[0]和arr[1]对比,若arr[0] 大于 arr[1] ,交换两个值, 0-1范围内有序。 第二次:保证 0-2 …

Java八股文面试全套真题【含答案】- Spring篇

以下是一些关于Spring的经典面试题以及它们的答案: 什么是Spring框架? Spring是一个轻量级的开源Java框架,用于快速构建企业级应用程序。它提供了一个容器,可以集中管理和组织应用程序的各个组件,同时提供了一套丰富的…

记录 | 命令行模式clash报错Can‘t find MMDB, start download

下载: https://link.zhihu.com/?targethttps%3A//gitee.com/mirrors/Pingtunnel/blob/master/GeoLite2-Country.mmdb 重命名为 Country.mmdb 下载完放到 ./clash 启动的同级目录就行 不行的话就放到 ~/.config/clash 下

【PID学习笔记 8 】控制系统的分析方法之一

写在前面 前面已经完成了控制系统的性能指标学习,从这节开始继续学习控制系统的分析方法,本文重点介绍分析方法概述和时域分析法。 一、控制系统的基本分析方法 控制系统的基本分析方法包括: 古典方法(经典控制理论)…

力扣题:数字与字符串间转换-12.14

力扣题-12.14 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:442. 数组中重复的数据 解题思想:从字符串中能够正确提取数字即可 class Solution(object):def complexNumberMultiply(self, num1, num2):""":type num1:…

nextTick详解

一. nextTick是什么? 官方定义: 在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM翻译一下就是: Vue在更新DOM时是异步执行的。当数据发生变化的时候,Vue将开启队列&#xf…

2.5 常规游戏中模型通用要求介绍

一、布线和理性 多星点(4个及4个以上边的交点) 如果是在中模阶段,减少使用多星点,因为会在细分是时出现凸点问题,如果要使用多星点,需要通过布线技巧把它移动至平面处,不要让他出现在倒角边缘。…

科技提升安全,基于DETR【DEtection TRansformer】模型开发构建商超扶梯场景下行人安全行为姿态检测识别系统

在商超等人流量较为密集的场景下经常会报道出现一些行人在扶梯上摔倒、受伤等问题,随着AI技术的快速发展与不断普及,越来越多的商超、地铁等场景开始加装专用的安全检测预警系统,核心工作原理即使AI模型与摄像头图像视频流的实时计算&#xf…

深入理解Java虚拟机---Java内存模型

JMM Java内存模型主内存和工作内存volatile Java内存模型 Java内存模型是Java虚拟机规范中试图定义一种Java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台上都能达到一致的内存访问效果。可以理解为JMM定义一套在多线程读写共…

Linux常见排错思路及命令

Linux常见排错思路及命令 一、引言 在Linux系统中,由于其高度可配置和可定制的特性,可能会遇到各种问题。本文将介绍一些常见的排错思路,并提供一些常用的命令,以帮助您快速定位和解决问题。 二、常见排错思路 查看系统日志 …

计算机网络简答题

面向连接和非连接的服务特点 面向连接的服务:通信双方在进行通信之前,要事先建立一个完整的可以彼此沟通的通道,在通信过程中整个连接的情况可以被实时的监控和管理 面向非链接的服务:不需要预先建立一个联络两个通信节点的连接&a…

智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.平衡优化器算法4.实验参数设定5.算法…