Remove constructor linked elements

This commit is contained in:
Jaby Blubb 2023-09-25 20:35:47 +02:00
parent 2ff0e6a4bf
commit 2d61c617c5
1 changed files with 6 additions and 7 deletions

View File

@ -16,10 +16,6 @@ namespace JabyEngine {
uint32_t link_value; uint32_t link_value;
constexpr Link() = default;
constexpr Link(size_t size) : link_value(default_link_value(size)) {
}
constexpr void set_link_identitiy(size_t size) { constexpr void set_link_identitiy(size_t size) {
this->link_value = default_link_value(size); this->link_value = default_link_value(size);
} }
@ -61,9 +57,12 @@ namespace JabyEngine {
struct LinkedElement : public Link { struct LinkedElement : public Link {
T element; T element;
constexpr LinkedElement() = default; static constexpr LinkedElement create(const T& element) {
LinkedElement new_element;
constexpr LinkedElement(const T& element) : Link(sizeof(T)), element(element) { new_element.element = element;
new_element.set_link_identitiy();
return new_element;
} }
constexpr void set_link_identitiy() { constexpr void set_link_identitiy() {
@ -85,7 +84,7 @@ namespace JabyEngine {
typedef LinkedElement<T> Linked; typedef LinkedElement<T> Linked;
constexpr LinkedElement<T> linked() { constexpr LinkedElement<T> linked() {
return LinkedElement<T>(*static_cast<T*>(this)); return LinkedElement<T>::create(*static_cast<T*>(this));
} }
}; };
} }