mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-13 19:18:01 +07:00
fix clang warnings
This commit is contained in:
@@ -161,6 +161,17 @@
|
||||
|
||||
#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()
|
||||
|
||||
namespace meta_hpp::detail
|
||||
{
|
||||
template < typename Enum >
|
||||
@@ -9014,7 +9025,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};
|
||||
@@ -9036,13 +9050,20 @@ 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()
|
||||
}
|
||||
|
||||
namespace meta_hpp::detail
|
||||
|
||||
@@ -34,7 +34,7 @@ TEST_CASE("meta/meta_issues/random/3") {
|
||||
|
||||
{
|
||||
meta::uvalue v{&int_func};
|
||||
CHECK(v.has_deref_op());
|
||||
CHECK_FALSE(v.has_deref_op());
|
||||
CHECK(v.get_type() == meta::resolve_type<int(*)()>());
|
||||
CHECK((v.as<decltype(&int_func)>() == &int_func));
|
||||
}
|
||||
|
||||
@@ -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