diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2023-04-09 14:39:39 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-04-09 14:39:39 +0200 |
commit | 345f2a06c7dfc3deaaf78fdac8db462377fd421c (patch) | |
tree | 61154551ec09cd1817e5fd4bbedae21fe3a3bd01 | |
parent | cb3f364d0cf1e16bd94b5f29eff61b8de7401034 (diff) |
entities: fix pure virtual concept checks
-rw-r--r-- | entity/concepts.hpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/entity/concepts.hpp b/entity/concepts.hpp index 8ab13df9..682360dd 100644 --- a/entity/concepts.hpp +++ b/entity/concepts.hpp @@ -8,17 +8,17 @@ namespace floormat::entities { template<typename F, typename T, typename FieldType> -concept FieldReader_memfn = requires(const T x, F f) { +concept FieldReader_memfn = requires(const T& x, F f) { { (x.*f)() } -> std::convertible_to<FieldType>; }; template<typename F, typename T, typename FieldType> -concept FieldReader_ptr = requires(const T x, F f) { +concept FieldReader_ptr = requires(const T& x, F f) { { x.*f } -> std::convertible_to<FieldType>; }; template<typename F, typename T, typename FieldType> -concept FieldReader_function = requires(const T x, F f) { +concept FieldReader_function = requires(const T& x, F f) { { f(x) } -> std::convertible_to<FieldType>; }; @@ -30,17 +30,17 @@ concept FieldReader = requires { }; template<typename F, typename T, typename FieldType> -concept FieldWriter_memfn = requires(T x, move_qualified<FieldType> value, F f) { +concept FieldWriter_memfn = requires(T& x, move_qualified<FieldType> value, F f) { { (x.*f)(value) } -> std::same_as<void>; }; template<typename F, typename T, typename FieldType> -concept FieldWriter_ptr = requires(T x, move_qualified<FieldType> value, F f) { +concept FieldWriter_ptr = requires(T& x, move_qualified<FieldType> value, F f) { { x.*f = value }; }; template<typename F, typename T, typename FieldType> -concept FieldWriter_function = requires(T x, move_qualified<FieldType> value, F f) { +concept FieldWriter_function = requires(T& x, move_qualified<FieldType> value, F f) { { f(x, value) } -> std::same_as<void>; }; |