From 9edf94be0ccb71e3965b3e0c63485affa02a269e Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sat, 11 Jun 2022 13:58:54 +0300 Subject: [PATCH] Clang compilation fixes --- libs/gfx/include/psemek/gfx/mesh.hpp | 3 ++- libs/gfx/source/mesh.cpp | 2 +- .../psemek/ml/neural_net/activation.hpp | 1 + libs/ui/include/psemek/ui/button.hpp | 4 ++-- libs/ui/include/psemek/ui/kerned_font.hpp | 2 ++ libs/ui/include/psemek/ui/scroller.hpp | 6 ++--- libs/util/include/psemek/util/flag_set.hpp | 2 ++ libs/util/tests/function.cpp | 1 + tools/test/include/psemek/test/test.hpp | 23 +++++++++++-------- 9 files changed, 27 insertions(+), 17 deletions(-) diff --git a/libs/gfx/include/psemek/gfx/mesh.hpp b/libs/gfx/include/psemek/gfx/mesh.hpp index 72fd407f..b647f230 100644 --- a/libs/gfx/include/psemek/gfx/mesh.hpp +++ b/libs/gfx/include/psemek/gfx/mesh.hpp @@ -17,7 +17,8 @@ #include #include -#include +#include +#include namespace psemek::gfx { diff --git a/libs/gfx/source/mesh.cpp b/libs/gfx/source/mesh.cpp index f0f6c285..608160c0 100644 --- a/libs/gfx/source/mesh.cpp +++ b/libs/gfx/source/mesh.cpp @@ -293,7 +293,7 @@ namespace psemek::gfx throw std::runtime_error("Number of transforms in a pose must be equal to the number of bones"); auto pose_ptr = s.read_ptr>(pose_count); - std::string_view name(name_ptr, name_ptr + name_length); + std::string_view name(name_ptr, name_length); result.poses[name] = {pose_ptr, pose_ptr + pose_count}; }; diff --git a/libs/ml/include/psemek/ml/neural_net/activation.hpp b/libs/ml/include/psemek/ml/neural_net/activation.hpp index e4d530ef..e2ab6767 100644 --- a/libs/ml/include/psemek/ml/neural_net/activation.hpp +++ b/libs/ml/include/psemek/ml/neural_net/activation.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include namespace psemek::ml diff --git a/libs/ui/include/psemek/ui/button.hpp b/libs/ui/include/psemek/ui/button.hpp index 2aac782e..3dfca9dc 100644 --- a/libs/ui/include/psemek/ui/button.hpp +++ b/libs/ui/include/psemek/ui/button.hpp @@ -21,8 +21,8 @@ namespace psemek::ui void update(float dt) override; - void set_enabled(bool value); - void set_hidden(bool value); + void set_enabled(bool value) override; + void set_hidden(bool value) override; using on_click_callback = std::function; diff --git a/libs/ui/include/psemek/ui/kerned_font.hpp b/libs/ui/include/psemek/ui/kerned_font.hpp index e0be7fd0..79174dd0 100644 --- a/libs/ui/include/psemek/ui/kerned_font.hpp +++ b/libs/ui/include/psemek/ui/kerned_font.hpp @@ -2,6 +2,8 @@ #include +#include + namespace psemek::ui { diff --git a/libs/ui/include/psemek/ui/scroller.hpp b/libs/ui/include/psemek/ui/scroller.hpp index ce62ecca..3d54e7f4 100644 --- a/libs/ui/include/psemek/ui/scroller.hpp +++ b/libs/ui/include/psemek/ui/scroller.hpp @@ -24,9 +24,9 @@ namespace psemek::ui virtual bool horizontal_scroll() const { return horizontal_; } virtual bool vertical_scroll() const { return vertical_; } - virtual bool on_event(mouse_move const & e); - virtual bool on_event(mouse_click const & e); - virtual bool on_event(mouse_wheel const & e); + virtual bool on_event(mouse_move const & e) override; + virtual bool on_event(mouse_click const & e) override; + virtual bool on_event(mouse_wheel const & e) override; struct shape const & shape() const override { return shape_; } void reshape(geom::box const & bbox) override; diff --git a/libs/util/include/psemek/util/flag_set.hpp b/libs/util/include/psemek/util/flag_set.hpp index 2f93bfeb..2503562a 100644 --- a/libs/util/include/psemek/util/flag_set.hpp +++ b/libs/util/include/psemek/util/flag_set.hpp @@ -28,6 +28,8 @@ namespace psemek::util : value{((1 << static_cast(flags)) | ...)} {} + flag_set & operator = (flag_set const &) = default; + bool is_set(Flag const & flag) const { return value & (1 << static_cast(flag)); diff --git a/libs/util/tests/function.cpp b/libs/util/tests/function.cpp index a96b4ae9..688feaff 100644 --- a/libs/util/tests/function.cpp +++ b/libs/util/tests/function.cpp @@ -4,6 +4,7 @@ #include #include +#include using namespace psemek::util; diff --git a/tools/test/include/psemek/test/test.hpp b/tools/test/include/psemek/test/test.hpp index 26bb2b3d..055b93d5 100644 --- a/tools/test/include/psemek/test/test.hpp +++ b/tools/test/include/psemek/test/test.hpp @@ -4,6 +4,19 @@ #include #include #include +#include + +// Have to put it before including to_string.hpp due to how unqualified lookup works, +// see e.g. https://alexanderlobov.net/posts/2019-07-08-function-lookup-in-templates +template +std::ostream & operator << (std::ostream & s, std::optional const & o) +{ + if (o) + s << *o; + else + s << "(empty)"; + return s; +} #include @@ -77,16 +90,6 @@ namespace psemek::test } -template -std::ostream & operator << (std::ostream & s, std::optional const & o) -{ - if (o) - s << *o; - else - s << "(empty)"; - return s; -} - #define test_case(name) \ void name ## _test_case (::psemek::test::context &); \ static const auto name ## _test_case_registrator = []{ ::psemek::test::add_test_case(#name, &(name ## _test_case)); return 0; }(); \