fix try_ member and ctor calls

This commit is contained in:
BlackMATov
2023-02-18 01:57:54 +07:00
parent e3b82ca382
commit d6ba3d8ce4
5 changed files with 12 additions and 8 deletions

View File

@@ -6805,8 +6805,8 @@ namespace meta_hpp
type_registry& registry{type_registry::instance()};
{
const uinst_base vinst{registry, type_list<Instance>{}};
const std::array<uarg_base, sizeof...(Args)> vargs{uarg_base{registry, type_list<Args>{}}...};
const uinst_base vinst{registry, std::forward<Instance>(instance)};
const std::array<uarg_base, sizeof...(Args)> vargs{uarg_base{registry, std::forward<Args>(args)}...};
if ( const uerror err = state_->invoke_error(vinst, vargs) ) {
return err;
}
@@ -7212,7 +7212,7 @@ namespace meta_hpp
type_registry& registry{type_registry::instance()};
{
const std::array<uarg_base, sizeof...(Args)> vargs{uarg_base{registry, type_list<Args>{}}...};
const std::array<uarg_base, sizeof...(Args)> vargs{uarg_base{registry, std::forward<Args>(args)}...};
if ( const uerror err = state_->create_error(vargs) ) {
return err;
}
@@ -7236,7 +7236,7 @@ namespace meta_hpp
type_registry& registry{type_registry::instance()};
{
const std::array<uarg_base, sizeof...(Args)> vargs{uarg_base{registry, type_list<Args>{}}...};
const std::array<uarg_base, sizeof...(Args)> vargs{uarg_base{registry, std::forward<Args>(args)}...};
if ( const uerror err = state_->create_error(vargs) ) {
return err;
}

View File

@@ -80,6 +80,7 @@ namespace
\
CHECK(f_state.is_invocable_with<decltype(FromValue)>());\
CHECK(f_state.invoke(FromValue).as<int>() == 1);\
CHECK(f_state.try_invoke(FromValue).get_value().as<int>() == 1);\
} else {\
CHECK_FALSE(uarg{r, FromValue}.can_cast_to<ToType>(r));\
CHECK_FALSE(uarg_base{r, type_list<decltype(FromValue)>{}}.can_cast_to<ToType>(r));\
@@ -101,6 +102,7 @@ namespace
CHECK(f_state.is_invocable_with<FromType>());\
CHECK(f_state.is_invocable_with(FromValue));\
CHECK(f_state.invoke(FromValue).as<int>() == 1);\
CHECK(f_state.try_invoke(FromValue).get_value().as<int>() == 1);\
} else {\
CHECK_FALSE(f_state.is_invocable_with<FromType>());\
CHECK_FALSE(f_state.is_invocable_with(FromValue));\

View File

@@ -40,6 +40,7 @@ namespace
\
CHECK(m_state.is_invocable_with<decltype(Inst)>());\
CHECK(m_state.invoke(Inst).as<int>() == 1);\
CHECK(m_state.try_invoke(Inst).get_value().as<int>() == 1);\
} else {\
CHECK_FALSE(uinst{r, Inst}.can_cast_to<clazz Qualifiers>(r));\
CHECK_FALSE(uinst_base{r, type_list<decltype(Inst)>{}}.can_cast_to<clazz Qualifiers>(r));\
@@ -61,6 +62,7 @@ namespace
CHECK(m_state.is_invocable_with<FromType>());\
CHECK(m_state.is_invocable_with(FromValue));\
CHECK(m_state.invoke(FromValue).as<int>() == 1);\
CHECK(m_state.try_invoke(FromValue).get_value().as<int>() == 1);\
} else {\
CHECK_FALSE(m_state.is_invocable_with<FromType>());\
CHECK_FALSE(m_state.is_invocable_with(FromValue));\