stl: std::is_pointer_v

This commit is contained in:
skypjack
2026-04-02 09:34:29 +02:00
parent 98604629c7
commit 86e2235b83
6 changed files with 10 additions and 9 deletions

View File

@@ -60,7 +60,7 @@ class dense_map_iterator final {
template<typename>
friend class dense_map_iterator;
static_assert(std::is_pointer_v<It>, "Not a pointer type");
static_assert(stl::is_pointer_v<It>, "Not a pointer type");
using first_type = decltype(stl::as_const(stl::declval<It>()->element.first));
using second_type = decltype((stl::declval<It>()->element.second));
@@ -155,7 +155,7 @@ class dense_map_local_iterator final {
template<typename>
friend class dense_map_local_iterator;
static_assert(std::is_pointer_v<It>, "Not a pointer type");
static_assert(stl::is_pointer_v<It>, "Not a pointer type");
using first_type = decltype(stl::as_const(stl::declval<It>()->element.first));
using second_type = decltype((stl::declval<It>()->element.second));

View File

@@ -32,7 +32,7 @@ class dense_set_iterator final {
template<typename>
friend class dense_set_iterator;
static_assert(std::is_pointer_v<It>, "Not a pointer type");
static_assert(stl::is_pointer_v<It>, "Not a pointer type");
public:
using value_type = std::remove_const_t<stl::remove_pointer_t<It>>::second_type;
@@ -124,7 +124,7 @@ class dense_set_local_iterator final {
template<typename>
friend class dense_set_local_iterator;
static_assert(std::is_pointer_v<It>, "Not a pointer type");
static_assert(stl::is_pointer_v<It>, "Not a pointer type");
public:
using value_type = std::remove_const_t<stl::remove_pointer_t<It>>::second_type;

View File

@@ -372,7 +372,7 @@ public:
} else {
using data_type = stl::remove_pointer_t<decltype(Data)>;
if constexpr(std::is_pointer_v<decltype(Data)>) {
if constexpr(stl::is_pointer_v<decltype(Data)>) {
static_assert(Policy::template value<decltype(*Data)>, "Invalid return type for the given policy");
} else {
static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
@@ -382,7 +382,7 @@ public:
internal::meta_data_node{
id,
name,
((!std::is_pointer_v<decltype(Data)> || std::is_const_v<data_type>) ? internal::meta_traits::is_const : internal::meta_traits::is_none) | internal::meta_traits::is_static,
((!stl::is_pointer_v<decltype(Data)> || std::is_const_v<data_type>) ? internal::meta_traits::is_const : internal::meta_traits::is_none) | internal::meta_traits::is_static,
1u,
&internal::resolve<stl::remove_cvref_t<data_type>>,
&meta_arg<type_list<stl::remove_cvref_t<data_type>>>,

View File

@@ -221,7 +221,7 @@ auto setup_node_for() noexcept {
| (std::is_array_v<Type> ? meta_traits::is_array : meta_traits::is_none)
| (std::is_enum_v<Type> ? meta_traits::is_enum : meta_traits::is_none)
| (std::is_class_v<Type> ? meta_traits::is_class : meta_traits::is_none)
| (std::is_pointer_v<Type> ? meta_traits::is_pointer : meta_traits::is_none)
| (stl::is_pointer_v<Type> ? meta_traits::is_pointer : meta_traits::is_none)
| (is_meta_pointer_like_v<Type> ? meta_traits::is_pointer_like : meta_traits::is_none)
| (is_complete_v<meta_sequence_container_traits<Type>> ? meta_traits::is_sequence_container : meta_traits::is_none)
| (is_complete_v<meta_associative_container_traits<Type>> ? meta_traits::is_associative_container : meta_traits::is_none),

View File

@@ -292,7 +292,7 @@ template<typename Type, auto Data>
return true;
}
}
} else if constexpr(std::is_pointer_v<decltype(Data)>) {
} else if constexpr(stl::is_pointer_v<decltype(Data)>) {
using data_type = std::remove_reference_t<decltype(*Data)>;
if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
@@ -332,7 +332,7 @@ template<typename Type, auto Data, meta_policy Policy = as_value_t>
}
return meta_any{meta_ctx_arg, instance->context()};
} else if constexpr(std::is_pointer_v<decltype(Data)>) {
} else if constexpr(stl::is_pointer_v<decltype(Data)>) {
if constexpr(std::is_array_v<stl::remove_pointer_t<decltype(Data)>>) {
return meta_any{meta_ctx_arg, instance->context()};
} else {

View File

@@ -10,6 +10,7 @@ using std::false_type;
using std::invoke_result_t;
using std::is_invocable_r_v;
using std::is_member_object_pointer_v;
using std::is_pointer_v;
using std::is_same_v;
using std::is_void_v;
using std::remove_cvref_t;