From 82620f74d6e40617b725dcb8e50cdd94eb3e3e86 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 29 Jun 2026 22:00:26 +0200 Subject: tq: rewrite for shift register semantics --- utilities.hpp | 67 ----------------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 utilities.hpp (limited to 'utilities.hpp') diff --git a/utilities.hpp b/utilities.hpp deleted file mode 100644 index 819c170..0000000 --- a/utilities.hpp +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef THROTTLE_QUADRANT_UTILITIES_HPP -#define THROTTLE_QUADRANT_UTILITIES_HPP - -#include - -void* operator new(size_t size, void* ptr); - -namespace tq { - -template -struct optional { - - optional() - : m_engaged{ false } { - } - - optional(optional const& other) - : m_engaged{ other.has_value() } { - if (m_engaged) { - construct_from(other.value()); - } - } - - explicit optional(ValueType const& value) - : m_engaged{ true } { - construct_from(value); - } - - ~optional() { - destroy(); - } - - auto operator=(optional const& other) -> optional& { - destroy(); - m_engaged = other.m_engaged; - if (m_engaged) { - construct_from(other.value()); - } - } - - auto has_value() const -> bool { - return m_engaged; - } - - auto value() const -> ValueType const& { - return *(reinterpret_cast(m_storage)); - } - -private: - auto construct_from(ValueType const& value) -> void { - new (static_cast(m_storage)) ValueType{ value }; - } - - auto destroy() -> void { - if (has_value()) { - (reinterpret_cast(m_storage))->~ValueType(); - } - } - - alignas(ValueType) byte m_storage[sizeof(ValueType)]; - bool m_engaged; -}; - - -} - -#endif \ No newline at end of file -- cgit v1.2.3