stl: std::is_pointer_v
This commit is contained in:
@@ -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));
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>>>,
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user