- 博客(89)
- 问答 (1)
- 收藏
- 关注
原创 虚幻反射-
来遍历特定类的属性。在Unreal Engine中,如果你想获取一个。的实例,并执行所需的操作,例如获取属性名称或值。方法来获取属性值的指针,并进行相应的转换。对象还包含有关属性的元数据,这些可以通过。:首先,确保包含了反射相关的头文件。:在遍历过程中,你可以访问每个。方法将属性值导出为文本格式。模板类,你可以遍历一个。:如果需要,可以使用。
2024-08-17 09:52:54
714
原创 UE SessionFrontd(会话前端)源码解析
ISessionService表示一个会话的服务。/***/public:/***//***//***/public:RunStopIsRunning加上一个必备的虚析构函数。
2024-08-14 17:47:12
800
原创 UE C++ FUdpSender和FUdpReveiver
因为涉及到多线程访问数据,所以使用TSharedRef和TSharedPtr的线程安全版本。另外使用 IPv4Endpoint记录了一个要发送的目标socket地址。使用OnDataReceived返回一个可接受两个参数的单播委托。通过对这个委托进行绑定,可完成对接受数据的处理。可以看见FUdpSender使用了多线程+消息队列来处理要发送的消息。第一个参数是收到到的数据,第二个参数是发送者的地址。每次要发送的数据被封装成了一个包,如下结构。目的是为了保证线程安全。是一个typedef。
2024-08-09 15:38:14
436
原创 UE C++编程概览
虚幻引擎中所有对象的基类都是UObject。而UCLASS宏的作用是标记UObject的子类, 以便处理系统可以识别它们。引擎能通过一些额外的操作来生成代码,实现反射等操作。大致定义方法如下。 如 MyProject 希望将 UMyObject 类公开到其他模块,则需要指定。
2024-08-09 14:49:38
817
原创 C++中如何自己封装一个Callable
有时候静态编译太不灵活,我们需要更灵活的运行时操作。又或真假设你在开发一个脚本,想注册本地的C++函数到脚本语言的标准库中。例如gdscript的Callable。下面是一个我的一个简单的实现。我们假设脚本语言中的变量类型是std::any。根据情况不同实现细节也可能不同。
2024-05-04 15:29:43
497
原创 QML QTP0001 not set 警告
这是从QT6.5开始的,旧的前缀被标记为废弃的。文档还说在使用qt_add_qml_module()不指定RESOURCE_PREFIX是新版的前缀,但是实际构建完后的项目好像不是这样。大概的意思是说现在':/qt/qml/' 这个前缀是QML模块资源文件的前缀,而之前是':/'还有一点要说的是,注意Main.qml的url,以便能够让引擎正确加载。使用QML的时候发现有这个警告。查阅资料之后发现解决办法。便利`:`文件夹后也可以看见的确做出了更改。cmake中这样些,就能指定新的前缀。
2023-10-24 20:11:36
1066
原创 万能引用和重载中的问题以及解决方案
总之,要不要使用如此晦涩复杂的特性,还是取决于程序员本身,你也可以使用const &快快乐乐的写代码,正因为你没有用到的东西,不应当给你增添任何负担,你用到的东西,没有什么比C++提供的更好了使用Modern C++也是你自己的选择,除非写库,很少有人能用到模板开发,真正把这些Modern C++特性用到生产环境的,并且用好的,我想都是在C++领域发光发热的大牛们吧。
2022-10-05 21:51:23
1999
原创 const-container-s-iterator-is-const-iterator
const性质的容器返回的迭代器也是const_iterator
2022-10-05 21:46:24
254
原创 Rust——关于Option详解
Option是组成Rust程序的基石,熟练使用Rust的Option可以帮助我们进行程序的开发。但是Option这里的知识和细节比较绕,说白了就是各种套娃,本篇文章意在梳理Option的一些细节。
2022-07-20 21:03:35
7877
1
原创 模版编程中使用基类内部的名称
看effective C++条款43随手做的实践。#include <iostream>template <typename T>class InType{ private: T _val; public: InType(const T & val) : _val(val) { } T & val() //const 修饰的是this变为const this * const { retu
2022-05-17 23:23:40
214
原创 C++中关于私有继承向上转型的问题
对于public而言,将一个继承类对象转换为一个基类对象再正常不过,但是,对于private来说,编译器不允许隐式的转换,强制转换也有些许的约束。也就是说下面这样的代码并不可以#include <iostream>using namespace std;class A{ private: virtual void foo() { cout << "A::foo" << endl; } };class B :
2022-05-05 09:52:21
724
1
原创 C++——成员函数的限定
今天在逛知乎的时候看见了一个问题,原文链接如下请问C++标准库函数not_fn为什么要这么实现? - 知乎看了一个知乎答者的解释非静态成员函数参数列表后的修饰符是成员函数的限定,在类对象处于不同的值类别(const non-const const & const &&等)时会选择不同的函数调用。这个在学习C++的时候已经学习到了,但是没想到竟然还会有带引用的形式。我们看一下的代码和其运行结果class Integer{private: int .
2022-04-13 17:51:49
451
原创 LINXU——命令的使用
声明:本文章基于LINUX命令行大全,基本就是读书笔记什么是命令?终端中的命令不外乎以下几种可执行程序shell内置指令shell函数alias命令可执行程序很好理解对shell命令的解释——摘自网络Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序摘自百度百科在计算机科学中,Shell俗称壳
2022-03-21 16:47:27
1114
原创 关于C结构体的一些代码补充
#include <stdio.h>#include <stdlib.h>typedef struct two_string{ char * first; char * second;}ts;void getmem(ts * t, unsigned first_n, unsigned second_n){ t->first = (char *)malloc(sizeof(char) * first_n + 1); t->se.
2022-02-23 15:04:42
576
原创 C++——allocator类
new 在灵活性上有一些局限可以使用allocator类进行更加强大的内存操作用法allocator<T> value_name;.allocate(n) 分配原始的,未构造的保存n个T类型的空间返沪一个指针.consstruct(p,args) 构造对象,在p指向的内存中,args是构造类型所需要的参数.destory(p) p为 T 的指针,对其指向的对象进行析构操作.deallocate(p,n) 释放空间,从p指向开始后的n块内存空间,此指针必须是alloc
2022-02-14 12:13:16
2405
原创 C++——再探迭代器
迭代器类型插入迭代器流迭代器反向迭代器移动迭代器假设it是一个对应类型的迭代器插入迭代器it = t; 对应位置前插入一个元素*it, ++it, it++虽然都定义了,但是没有任何作用,全部返回原来it三种类型back_inserterfront_inserterinserter 返回一个迭代器类型,指向新添加的元素上面的迭代器分别对应push_back,push_front, insert。使用方法back_inserter,front_i
2022-02-12 20:55:44
336
原创 C++——参数绑定
一些STL算法要求我们使用一元函数,可是有些函数却不是一元的,C++提供了一项叫做函数绑定的技术顾名思义,就是讲参数绑定到函数上,使一些非一元函数能够当作一元函数使用,准确的来说,不是哪些非一元函数本身能当做一元函数使用,而是一个名为bind的函数包装器能返回一个绑定过参数的函数对象。bind是一个函数,也是一个函数包装器,定义在<functional>头文件中简单的参数绑定假设搜索第一个大于长度n的字符串,可以用find_if,但是其接受一个一元谓词,那就可以用bind包装函数
2022-02-12 18:16:00
578
原创 C++——forward_list的插入操作
#include <iostream>#include <vector>#include <algorithm>#include <list>#include <forward_list>using namespace std;//查找s1,并在其后面添s2,没有找到在后面添加//别忘了fls传递引用void func(forward_list<string> & fls,const string & .
2022-02-11 11:54:01
577
空空如也
C++ has-a 关系的建立(私有继承)中遇到了问题
2022-01-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人