fix Array

This commit is contained in:
2025-07-10 16:48:21 +02:00
parent be8b5dd8a7
commit d1690192db
2 changed files with 23 additions and 1 deletions

View File

@@ -3,6 +3,10 @@
#include <cstdint>
namespace td {
/**
* Reflectable std::array
*/
template <typename T, std::size_t S>
class Array {
private:
@@ -11,6 +15,15 @@ class Array {
public:
Array() : m_Data(new T[S]) {}
Array(const Array& a_Other) : Array() {
std::memcpy(m_Data, a_Other.m_Data, S);
}
Array(Array&& a_Other) {
m_Data = a_Other.m_Data;
a_Other.m_Data = nullptr;
}
Array(const std::initializer_list<T>& args) {
std::size_t i = 0;
for(const T& element : args) {
@@ -19,6 +32,16 @@ class Array {
}
}
Array& operator=(const Array& a_Other) {
std::memcpy(m_Data, a_Other.m_Data, S);
return *this;
}
Array& operator=(Array&& a_Other) {
std::swap(m_Data, a_Other.m_Data);
return *this;
}
T& operator[](std::size_t a_Index) {
return m_Data[a_Index];
}

View File

@@ -1,6 +1,5 @@
#pragma once
#define BOOST_PFR_USE_CPP17 0
#include <optional>
#include <td/protocol/command/Commands.h>
#include <td/protocol/packet/Packets.h>