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_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
|
namespace meta_hpp::detail
|
||||||
{
|
{
|
||||||
template < typename Enum >
|
template < typename Enum >
|
||||||
@@ -9014,7 +9025,10 @@ namespace meta_hpp::detail
|
|||||||
namespace meta_hpp::detail
|
namespace meta_hpp::detail
|
||||||
{
|
{
|
||||||
template < typename T >
|
template < typename T >
|
||||||
requires requires(const T& v) { uvalue{*v}; }
|
requires requires(const T& v) {
|
||||||
|
sizeof(*v);
|
||||||
|
uvalue{*v};
|
||||||
|
}
|
||||||
struct deref_traits<T> {
|
struct deref_traits<T> {
|
||||||
uvalue operator()(const T& v) const {
|
uvalue operator()(const T& v) const {
|
||||||
return uvalue{*v};
|
return uvalue{*v};
|
||||||
@@ -9036,13 +9050,20 @@ namespace meta_hpp::detail
|
|||||||
|
|
||||||
namespace meta_hpp::detail
|
namespace meta_hpp::detail
|
||||||
{
|
{
|
||||||
|
META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_PUSH()
|
||||||
|
|
||||||
template < typename T >
|
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> {
|
struct index_traits<T> {
|
||||||
uvalue operator()(const T& v, std::size_t i) const {
|
uvalue operator()(const T& v, std::size_t i) const {
|
||||||
return uvalue{v[i]};
|
return uvalue{v[i]};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_POP()
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace meta_hpp::detail
|
namespace meta_hpp::detail
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ TEST_CASE("meta/meta_issues/random/3") {
|
|||||||
|
|
||||||
{
|
{
|
||||||
meta::uvalue v{&int_func};
|
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.get_type() == meta::resolve_type<int(*)()>());
|
||||||
CHECK((v.as<decltype(&int_func)>() == &int_func));
|
CHECK((v.as<decltype(&int_func)>() == &int_func));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -161,3 +161,14 @@
|
|||||||
META_HPP_DETAIL_CLANG_IGNORE_WARNING("-Wsuggest-override")
|
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_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
|
namespace meta_hpp::detail
|
||||||
{
|
{
|
||||||
template < typename T >
|
template < typename T >
|
||||||
requires requires(const T& v) { uvalue{*v}; }
|
requires requires(const T& v) {
|
||||||
|
sizeof(*v);
|
||||||
|
uvalue{*v};
|
||||||
|
}
|
||||||
struct deref_traits<T> {
|
struct deref_traits<T> {
|
||||||
uvalue operator()(const T& v) const {
|
uvalue operator()(const T& v) const {
|
||||||
return uvalue{*v};
|
return uvalue{*v};
|
||||||
|
|||||||
@@ -23,11 +23,18 @@ namespace meta_hpp::detail
|
|||||||
|
|
||||||
namespace meta_hpp::detail
|
namespace meta_hpp::detail
|
||||||
{
|
{
|
||||||
|
META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_PUSH()
|
||||||
|
|
||||||
template < typename T >
|
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> {
|
struct index_traits<T> {
|
||||||
uvalue operator()(const T& v, std::size_t i) const {
|
uvalue operator()(const T& v, std::size_t i) const {
|
||||||
return uvalue{v[i]};
|
return uvalue{v[i]};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
META_HPP_DETAIL_IGNORE_SIGN_CONVERSION_WARNINGS_POP()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user