diff --git a/include/xo/alloc2/cmpresult.hpp b/include/xo/alloc2/cmpresult.hpp deleted file mode 100644 index 0a9a911..0000000 --- a/include/xo/alloc2/cmpresult.hpp +++ /dev/null @@ -1,87 +0,0 @@ -/** @file cmpresult.hpp -* - * @author Roland Conybeare, Dec 2025 - **/ - -#pragma once - -#include -#include - -namespace xo { - namespace mm { - enum class comparison : int32_t { - invalid = -1, - comparable = 0, - incomparable = +1, - }; - - extern const char * comparison2str(comparison x); - - inline std::ostream & - operator<<(std::ostream & os, comparison x) { - os << comparison2str(x); - return os; - } - - /** Result of a generic comparison operation - **/ - struct cmpresult { - /** @defgroup mm-cmpresult-ctors cmpresult ctors **/ - ///@{ - cmpresult() : err_{comparison::invalid}, cmp_{0} {} - cmpresult(comparison err, std::int16_t cmp) : err_{err}, cmp_{cmp} {} - - static cmpresult incomparable() { return cmpresult(comparison::incomparable, 0); } - static cmpresult lesser() { return cmpresult(comparison::comparable, -1); } - static cmpresult equal() { return cmpresult(comparison::comparable, 0); } - static cmpresult greater() { return cmpresult(comparison::comparable, +1); } - template - static cmpresult from_cmp(T && x, T && y) { - if (x < y) - return cmpresult::lesser(); - else if (x == y) - return cmpresult::equal(); - else - return cmpresult::greater(); - } - - ///@} - - /** @defgroup mm-cmpresult-methods cmpresult methods **/ - ///@{ - - /** print to stream **/ - void display(std::ostream & os) const; - - bool is_lesser() const { - return (err_ == comparison::comparable) && (cmp_ < 0); - } - bool is_equal() const { - return (err_ == comparison::comparable) && (cmp_ == 0); - } - ///@} - - /** @defgroup mm-cmpresult-instance-vars cmpresult instance vars **/ - ///@{ - /** -1 -> invalid (sentinel) - * 0 -> comparable - * +1 -> incomparable (e.g. iterators from different arenas) - **/ - comparison err_ = comparison::invalid; - /** <0 -> lesser; 0 -> equal, >0 -> greater **/ - std::int16_t cmp_ = 0; - ///@} - }; - - inline std::ostream & operator<<(std::ostream & os, - const cmpresult & x) - { - x.display(os); - return os; - } - - } /*namespace mm*/ -} /*namespace xo*/ - -/* end cmpresult.hpp */ diff --git a/src/alloc2/CMakeLists.txt b/src/alloc2/CMakeLists.txt index ac1ae65..d6982bb 100644 --- a/src/alloc2/CMakeLists.txt +++ b/src/alloc2/CMakeLists.txt @@ -5,7 +5,7 @@ set(SELF_SRCS # AllocError.cpp # AllocInfo.cpp - cmpresult.cpp +# cmpresult.cpp AAllocator.cpp # ArenaConfig.cpp diff --git a/src/alloc2/cmpresult.cpp b/src/alloc2/cmpresult.cpp deleted file mode 100644 index cd7c299..0000000 --- a/src/alloc2/cmpresult.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/** @file cmpresult.cpp - * - * @author Roland Conybeare, Dec 2025 - **/ - -#include "cmpresult.hpp" -#include -#include - -namespace xo { - namespace mm { - const char * - comparison2str(comparison x) - { - switch (x) { - case comparison::invalid: - break; - case comparison::comparable: - return "cmp"; - case comparison::incomparable: - return "!cmp"; - } - - return "?comparison"; - } - - void - cmpresult::display(std::ostream & os) const - { - os << ""; - } - } /*namespace mm*/ -} /*namespace xo*/ - -/* end cmpresult.cpp */