add member_flags::is_readonly

This commit is contained in:
BlackMATov
2022-01-09 15:34:08 +07:00
parent 25736b2cec
commit 6ea935071c
3 changed files with 9 additions and 2 deletions

View File

@@ -73,6 +73,7 @@ namespace meta_hpp
};
enum class member_flags : std::uint32_t {
is_readonly = 1 << 0,
};
enum class method_flags : std::uint32_t {

View File

@@ -20,7 +20,13 @@ namespace meta_hpp::detail
using value_type = V;
[[nodiscard]] static constexpr bitflags<member_flags> make_flags() noexcept {
return {};
bitflags<member_flags> flags;
if constexpr ( std::is_const_v<value_type> ) {
flags.set(member_flags::is_readonly);
}
return flags;
}
};
}

View File

@@ -39,7 +39,7 @@ TEST_CASE("meta/meta_types/member_type") {
REQUIRE(type);
CHECK(type.get_id() == meta::resolve_type(&clazz_1::const_int_member).get_id());
CHECK(type.get_flags() == meta::member_flags{});
CHECK(type.get_flags() == meta::member_flags::is_readonly);
CHECK(type.get_owner_type() == meta::resolve_type<clazz_1>());
CHECK(type.get_value_type() == meta::resolve_type<int>());