Remove constructor linked elements
This commit is contained in:
parent
2ff0e6a4bf
commit
2d61c617c5
|
@ -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));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue