summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2025-02-05 05:17:47 +0100
committerStanislaw Halik <sthalik@misaki.pl>2025-02-05 06:22:43 +0100
commitab13ab5f71a5b09de3b9526feca2ed7c564cee7e (patch)
tree1699d8de2dd8217b7133b19c1a9878494a2854ca
parent867a22c2a989b3f3a2bc47044226f5f9df6a59fd (diff)
switch to Corrade pair impl from stl
-rw-r--r--editor/app.hpp2
-rw-r--r--editor/events.cpp5
-rw-r--r--editor/inspect.cpp1
-rw-r--r--entity/constraints.hpp7
-rw-r--r--entity/erased-constraints.cpp12
-rw-r--r--entity/erased-constraints.hpp3
-rw-r--r--test/entity.cpp6
7 files changed, 19 insertions, 17 deletions
diff --git a/editor/app.hpp b/editor/app.hpp
index 1e990f6c..800d3d10 100644
--- a/editor/app.hpp
+++ b/editor/app.hpp
@@ -116,7 +116,7 @@ private:
void on_mouse_up_down(const mouse_button_event& event, bool is_down, const sdl2::EvClick& ev) noexcept override;
void on_mouse_scroll(const mouse_scroll_event& event, const sdl2::EvScroll& ev) noexcept override;
void on_key_up_down(const key_event& event, bool is_down, const sdl2::EvKey& ev) noexcept override;
- std::tuple<key, int> resolve_keybinding(int k, int mods);
+ Pair<key, int> resolve_keybinding(int k, int mods);
void on_text_input_event(const text_input_event& event) noexcept override;
//bool on_text_editing_event(const text_editing_event& event) noexcept override;
void on_viewport_event(const Magnum::Math::Vector2<int>& size) noexcept override;
diff --git a/editor/events.cpp b/editor/events.cpp
index b25cdb7e..6aaf1e70 100644
--- a/editor/events.cpp
+++ b/editor/events.cpp
@@ -7,7 +7,8 @@
#include "keys.hpp"
#include "editor.hpp"
#include "compat/enum-bitset.hpp"
-#include <tuple>
+#include <Corrade/Containers/Pair.h>
+#include <Corrade/Containers/StructuredBindings.h>
#include <Magnum/Platform/Sdl2Application.h>
#include <Magnum/ImGuiIntegration/Context.hpp>
@@ -141,7 +142,7 @@ void app::on_mouse_scroll(const mouse_scroll_event& event, const sdl2::EvScroll&
while (false);
}
-auto app::resolve_keybinding(int k_, int mods_) -> std::tuple<key, int>
+auto app::resolve_keybinding(int k_, int mods_) -> Pair<key, int>
{
[[maybe_unused]] constexpr int CTRL = kmod_ctrl;
[[maybe_unused]] constexpr int SHIFT = kmod_shift;
diff --git a/editor/inspect.cpp b/editor/inspect.cpp
index ab177fda..7302f8bd 100644
--- a/editor/inspect.cpp
+++ b/editor/inspect.cpp
@@ -5,6 +5,7 @@
#include "imgui-raii.hpp"
#include <cstdio>
#include <utility>
+#include <Corrade/Containers/StructuredBindings.h>
#include <Corrade/Containers/ArrayView.h>
#include <Corrade/Containers/String.h>
#include <Magnum/Math/Functions.h>
diff --git a/entity/constraints.hpp b/entity/constraints.hpp
index 6a5587d5..0bfc2f15 100644
--- a/entity/constraints.hpp
+++ b/entity/constraints.hpp
@@ -1,8 +1,7 @@
#pragma once
#include "compat/limits.hpp"
#include "erased-constraints.hpp"
-#include <type_traits>
-#include <utility>
+#include <cr/Pair.h>
#include <mg/Vector.h>
namespace floormat::entities::limit_detail {
@@ -52,7 +51,7 @@ template<typename T> struct range
T max = limit_detail::limit_traits<T>::max();
constexpr operator erased_constraints::range() const noexcept;
- constexpr operator std::pair<T, T>() const noexcept;
+ constexpr operator Pair<T, T>() const noexcept;
constexpr bool operator==(const range&) const noexcept = default;
};
@@ -125,7 +124,7 @@ template<typename T>
constexpr range<T>::operator erased_constraints::range() const noexcept
{ return erased_range_from_range(min, max); }
-template<typename T> constexpr range<T>::operator std::pair<T, T>() const noexcept { return { min, max }; }
+template<typename T> constexpr range<T>::operator Pair<T, T>() const noexcept { return { min, max }; }
template<> struct range<String> { constexpr operator erased_constraints::range() const noexcept { return {}; } };
template<> struct range<StringView> { constexpr operator erased_constraints::range() const noexcept { return {}; } };
diff --git a/entity/erased-constraints.cpp b/entity/erased-constraints.cpp
index 6e81820a..4cb915dc 100644
--- a/entity/erased-constraints.cpp
+++ b/entity/erased-constraints.cpp
@@ -2,17 +2,17 @@
#include "compat/assert.hpp"
#include <cmath>
#include <limits>
-#include <Magnum/Magnum.h>
-#include <Magnum/Math/Vector2.h>
-#include <Magnum/Math/Vector3.h>
-#include <Magnum/Math/Vector4.h>
+#include <cr/Pair.h>
+#include <mg/Vector2.h>
+#include <mg/Vector3.h>
+#include <mg/Vector4.h>
namespace floormat::entities::erased_constraints {
static_assert(sizeof(size_t) == sizeof(uintptr_t));
static_assert(sizeof(size_t) == sizeof(ptrdiff_t));
-template<typename T> std::pair<T, T> range::convert() const
+template<typename T> Pair<T, T> range::convert() const
{
static_assert(sizeof(T) <= sizeof(min));
@@ -103,7 +103,7 @@ template<typename T> std::pair<T, T> range::convert() const
}
}
-template<typename T> using pair2 = std::pair<T, T>;
+template<typename T> using pair2 = Pair<T, T>;
template pair2<uint8_t> range::convert() const;
template pair2<uint16_t> range::convert() const;
diff --git a/entity/erased-constraints.hpp b/entity/erased-constraints.hpp
index af050bd6..64b469a3 100644
--- a/entity/erased-constraints.hpp
+++ b/entity/erased-constraints.hpp
@@ -1,4 +1,5 @@
#pragma once
+#include <utility>
#include <Corrade/Containers/StringView.h>
#include <Magnum/Math/Vector4.h>
@@ -25,7 +26,7 @@ struct range final
element min, max;
type_ type = type_none;
- template<typename T> std::pair<T, T> convert() const;
+ template<typename T> Pair<T, T> convert() const;
friend bool operator==(const range& a, const range& b);
};
diff --git a/test/entity.cpp b/test/entity.cpp
index 2bbdf29a..97ffd7a7 100644
--- a/test/entity.cpp
+++ b/test/entity.cpp
@@ -258,7 +258,7 @@ void test_range2()
const auto A = m_foo.erased();
auto r = A.get_range(&x);
auto i = r.convert<int>();
- fm_assert(i.second == rʹ.max);
+ fm_assert(i.second() == rʹ.max);
}
constexpr bool test_range3()
@@ -277,8 +277,8 @@ void test_range4()
constexpr auto rʹ = f.get_range(f.range, TestAccessors{});
const auto A = f.erased();
const auto r = A.get_range(&x).convert<Vector2i>();
- fm_assert(r.first == rʹ.min);
- fm_assert(r.second == rʹ.max);
+ fm_assert(r.first() == rʹ.min);
+ fm_assert(r.second() == rʹ.max);
}
constexpr bool test_enum_range()