fix clang warnings

This commit is contained in:
BlackMATov
2023-12-30 12:50:51 +07:00
parent 50d6ab4974
commit 0467d385be
5 changed files with 47 additions and 5 deletions

View File

@@ -161,3 +161,14 @@
META_HPP_DETAIL_CLANG_IGNORE_WARNING("-Wsuggest-override")
#define META_HPP_DETAIL_IGNORE_OVERRIDE_WARNINGS_POP() META_HPP_DETAIL_CLANG_IGNORE_WARNINGS_POP()
//
//
//
#define META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_PUSH() \
META_HPP_DETAIL_CLANG_IGNORE_WARNINGS_PUSH() \
META_HPP_DETAIL_CLANG_IGNORE_WARNING("-Wunknown-warning-option") \
META_HPP_DETAIL_CLANG_IGNORE_WARNING("-Wsign-conversion")
#define META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_POP() META_HPP_DETAIL_CLANG_IGNORE_WARNINGS_POP()

View File

@@ -24,7 +24,10 @@ namespace meta_hpp::detail
namespace meta_hpp::detail
{
template < typename T >
requires requires(const T& v) { uvalue{*v}; }
requires requires(const T& v) {
sizeof(*v);
uvalue{*v};
}
struct deref_traits<T> {
uvalue operator()(const T& v) const {
return uvalue{*v};

View File

@@ -23,11 +23,18 @@ namespace meta_hpp::detail
namespace meta_hpp::detail
{
META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_PUSH()
template < typename T >
requires requires(const T& v, std::size_t i) { uvalue{v[i]}; }
requires requires(const T& v, std::size_t i) {
sizeof(v[i]);
uvalue{v[i]};
}
struct index_traits<T> {
uvalue operator()(const T& v, std::size_t i) const {
return uvalue{v[i]};
}
};
META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_POP()
}