OpenMiInk/third_party/krita-deps-management/ext_lager/0002-Fix-attempt-to-use-final-specifier-with-a-non-virtua.patch
Hellings b8c8ff98e2 Hi
2026-10-16 09:05:56 -04:00

162 lines
4.7 KiB
Diff

From d1209444c4fb11c3bced674306823b7d2f4161a0 Mon Sep 17 00:00:00 2001
From: "L. E. Segovia" <amy@amyspark.me>
Date: Sun, 23 Apr 2023 21:42:26 -0300
Subject: [PATCH 2/2] Fix attempt to use final specifier with a non virtual
function
This is incorrect as per s.11.4.1.15 [class.mem.general] of the C++
Standard [1].
See also: https://en.cppreference.com/w/cpp/language/final
[1]: https://eel.is/c++draft/class.mem.general#15
---
lager/constant.hpp | 2 +-
lager/detail/lens_nodes.hpp | 2 +-
lager/detail/merge_nodes.hpp | 2 +-
lager/detail/nodes.hpp | 4 ++--
lager/detail/xform_nodes.hpp | 2 +-
lager/sensor.hpp | 2 +-
lager/setter.hpp | 4 ++--
lager/state.hpp | 2 +-
lager/store.hpp | 2 +-
9 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/lager/constant.hpp b/lager/constant.hpp
index 0b985a0..ede3d7e 100644
--- a/lager/constant.hpp
+++ b/lager/constant.hpp
@@ -27,7 +27,7 @@ class constant_node : public root_node<T, reader_node>
public:
using base_t::base_t;
- virtual void recompute() final {}
+ void recompute() final override {}
};
template <typename T>
diff --git a/lager/detail/lens_nodes.hpp b/lager/detail/lens_nodes.hpp
index 51a791b..39d78de 100644
--- a/lager/detail/lens_nodes.hpp
+++ b/lager/detail/lens_nodes.hpp
@@ -60,7 +60,7 @@ public:
, lens_{std::forward<Lens2>(l)}
{}
- void recompute() final
+ void recompute() final override
{
this->push_down(view(lens_, current_from(this->parents())));
}
diff --git a/lager/detail/merge_nodes.hpp b/lager/detail/merge_nodes.hpp
index 45e2cd4..33ba23e 100644
--- a/lager/detail/merge_nodes.hpp
+++ b/lager/detail/merge_nodes.hpp
@@ -49,7 +49,7 @@ public:
: base_t{current_from(parents), std::forward<ParentsTuple>(parents)}
{}
- void recompute() final { this->push_down(current_from(this->parents())); }
+ void recompute() final override { this->push_down(current_from(this->parents())); }
};
template <typename Parents>
diff --git a/lager/detail/nodes.hpp b/lager/detail/nodes.hpp
index 87ed89b..e6e4db1 100644
--- a/lager/detail/nodes.hpp
+++ b/lager/detail/nodes.hpp
@@ -260,7 +260,7 @@ public:
, parents_{std::move(parents)}
{}
- void refresh() final
+ void refresh() final override
{
std::apply([&](auto&&... ps) { noop((ps->refresh(), 0)...); },
parents_);
@@ -302,7 +302,7 @@ struct root_node : Base<T>
using base_t = Base<T>;
using base_t::base_t;
- void refresh() final {}
+ void refresh() final override {}
};
template <typename... Nodes>
diff --git a/lager/detail/xform_nodes.hpp b/lager/detail/xform_nodes.hpp
index 9babe57..c373aa9 100644
--- a/lager/detail/xform_nodes.hpp
+++ b/lager/detail/xform_nodes.hpp
@@ -95,7 +95,7 @@ public:
, down_step_{std::forward<Xform2>(xform)(send_down_rf)}
{}
- void recompute() final
+ void recompute() final override
{
std::apply([&](auto&&... ps) { down_step_(this, ps->current()...); },
this->parents());
diff --git a/lager/sensor.hpp b/lager/sensor.hpp
index 7c29780..3dca346 100644
--- a/lager/sensor.hpp
+++ b/lager/sensor.hpp
@@ -41,7 +41,7 @@ public:
, sensor_{std::move(sensor)}
{}
- void recompute() final { this->push_down(sensor_()); }
+ void recompute() final override { this->push_down(sensor_()); }
private:
SensorFnT sensor_;
diff --git a/lager/setter.hpp b/lager/setter.hpp
index eec8ec2..01009ec 100644
--- a/lager/setter.hpp
+++ b/lager/setter.hpp
@@ -40,7 +40,7 @@ public:
, setter_fn_{std::move(fn)}
{}
- void recompute() final
+ void recompute() final override
{
if (recomputed_)
recomputed_ = false;
@@ -48,7 +48,7 @@ public:
this->push_down(parent_->current());
}
- void refresh() final {}
+ void refresh() final override {}
void send_up(const value_type& value) override
{
diff --git a/lager/state.hpp b/lager/state.hpp
index 6ba43da..ff99e4d 100644
--- a/lager/state.hpp
+++ b/lager/state.hpp
@@ -37,7 +37,7 @@ public:
using base_t::base_t;
- virtual void recompute() final {}
+ void recompute() final override {}
void send_up(const value_type& value) final
{
diff --git a/lager/store.hpp b/lager/store.hpp
index 6af905a..26bb509 100644
--- a/lager/store.hpp
+++ b/lager/store.hpp
@@ -40,7 +40,7 @@ struct store_node_base : public root_node<Model, reader_node>
using base_t = root_node<Model, reader_node>;
using base_t::base_t;
- virtual void recompute() final {}
+ void recompute() final override {}
virtual future dispatch(action_t action) = 0;
};
--
2.37.1.windows.1