stl: std::is_class_v
This commit is contained in:
@@ -196,7 +196,7 @@ class meta_any {
|
||||
}
|
||||
} else if constexpr(requires(Type elem) { *elem; }) {
|
||||
if(req == internal::meta_traits::is_pointer) {
|
||||
if constexpr(std::is_class_v<Type>) {
|
||||
if constexpr(stl::is_class_v<Type>) {
|
||||
if(const auto &elem = any_cast<const Type &>(value.storage); elem) {
|
||||
return (value.storage.policy() == any_policy::cref) ? static_cast<meta_any *>(other)->emplace<decltype(*elem)>(*elem) : static_cast<meta_any *>(other)->emplace<decltype(*const_cast<Type &>(elem))>(*const_cast<Type &>(elem));
|
||||
}
|
||||
|
||||
@@ -221,7 +221,7 @@ auto setup_node_for() noexcept {
|
||||
| (stl::is_signed_v<Type> ? meta_traits::is_signed : meta_traits::is_none)
|
||||
| (stl::is_array_v<Type> ? meta_traits::is_array : meta_traits::is_none)
|
||||
| (stl::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)
|
||||
| (stl::is_class_v<Type> ? meta_traits::is_class : 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)
|
||||
|
||||
@@ -419,7 +419,7 @@ template<typename Type, typename... Args>
|
||||
*/
|
||||
template<typename Type, typename Policy = as_value_t, typename Candidate>
|
||||
[[nodiscard]] meta_any meta_construct(const meta_ctx &ctx, Candidate &&candidate, meta_any *const args) {
|
||||
if constexpr(meta_function_helper_t<Type, Candidate>::is_static || std::is_class_v<stl::remove_cvref_t<Candidate>>) {
|
||||
if constexpr(meta_function_helper_t<Type, Candidate>::is_static || stl::is_class_v<stl::remove_cvref_t<Candidate>>) {
|
||||
meta_any placeholder{meta_ctx_arg, ctx};
|
||||
return internal::meta_invoke<Type, Policy>(placeholder, stl::forward<Candidate>(candidate), args, stl::make_index_sequence<meta_function_helper_t<Type, stl::remove_reference_t<Candidate>>::args_type::size>{});
|
||||
} else {
|
||||
|
||||
@@ -17,6 +17,7 @@ using std::invoke_result_t;
|
||||
using std::is_aggregate_v;
|
||||
using std::is_arithmetic_v;
|
||||
using std::is_array_v;
|
||||
using std::is_class_v;
|
||||
using std::is_const_v;
|
||||
using std::is_constructible_v;
|
||||
using std::is_convertible_v;
|
||||
|
||||
Reference in New Issue
Block a user