mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-14 19:41:29 +07:00
fix clang warnings
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user