replace some throws to asserts

This commit is contained in:
BlackMATov
2023-02-10 16:29:24 +07:00
parent 6661912b9b
commit 214920da44
5 changed files with 62 additions and 62 deletions

View File

@@ -304,8 +304,8 @@ namespace meta_hpp::detail
#else
# define META_HPP_TRY if ( true )
# define META_HPP_CATCH(...) if ( false )
# define META_HPP_RETHROW() std::terminate()
# define META_HPP_THROW(...) std::terminate()
# define META_HPP_RETHROW() std::abort()
# define META_HPP_THROW(...) std::abort()
#endif
#define META_HPP_THROW_IF(yesno, ...) \
@@ -381,7 +381,7 @@ namespace meta_hpp::detail
}
R operator()(Args... args) const {
META_HPP_THROW_IF(!vtable_, "bad function call");
META_HPP_ASSERT(vtable_ && "bad function call");
return vtable_->call(*this, std::forward<Args>(args)...);
}
@@ -4413,12 +4413,12 @@ namespace meta_hpp
{
auto state = detail::constructor_state::make<Policy, Class, Args...>(std::move(opts.metadata));
META_HPP_THROW_IF( //
opts.arguments.size() > state->arguments.size(),
"provided argument names don't match constructor argument count"
META_HPP_ASSERT( //
opts.arguments.size() <= state->arguments.size() //
&& "provided argument names don't match constructor argument count"
);
for ( std::size_t i = 0; i < opts.arguments.size(); ++i ) {
for ( std::size_t i{}, e{std::min(opts.arguments.size(), state->arguments.size())}; i < e; ++i ) {
argument& arg = state->arguments[i];
detail::state_access(arg)->name = std::move(opts.arguments[i].name);
detail::state_access(arg)->metadata = std::move(opts.arguments[i].metadata);
@@ -4463,12 +4463,12 @@ namespace meta_hpp
class_bind<Class>& class_bind<Class>::function_(std::string name, Function function_ptr, function_opts opts, Policy) {
auto state = detail::function_state::make<Policy>(std::move(name), function_ptr, std::move(opts.metadata));
META_HPP_THROW_IF( //
opts.arguments.size() > state->arguments.size(),
"provided arguments don't match function argument count"
META_HPP_ASSERT( //
opts.arguments.size() <= state->arguments.size() //
&& "provided arguments don't match function argument count"
);
for ( std::size_t i = 0; i < opts.arguments.size(); ++i ) {
for ( std::size_t i{}, e{std::min(opts.arguments.size(), state->arguments.size())}; i < e; ++i ) {
argument& arg = state->arguments[i];
detail::state_access(arg)->name = std::move(opts.arguments[i].name);
detail::state_access(arg)->metadata = std::move(opts.arguments[i].metadata);
@@ -4483,12 +4483,12 @@ namespace meta_hpp
class_bind<Class>& class_bind<Class>::function_(std::string name, Function function_ptr, string_ilist arguments, Policy) {
auto state = detail::function_state::make<Policy>(std::move(name), function_ptr, {});
META_HPP_THROW_IF( //
arguments.size() > state->arguments.size(),
"provided argument names don't match function argument count"
META_HPP_ASSERT(
arguments.size() <= state->arguments.size() //
&& "provided argument names don't match function argument count"
);
for ( std::size_t i = 0; i < arguments.size(); ++i ) {
for ( std::size_t i{}, e{std::min(arguments.size(), state->arguments.size())}; i < e; ++i ) {
argument& arg = state->arguments[i];
// NOLINTNEXTLINE(*-pointer-arithmetic)
detail::state_access(arg)->name = std::data(arguments)[i];
@@ -4535,12 +4535,12 @@ namespace meta_hpp
class_bind<Class>& class_bind<Class>::method_(std::string name, Method method_ptr, method_opts opts, Policy) {
auto state = detail::method_state::make<Policy>(std::move(name), method_ptr, std::move(opts.metadata));
META_HPP_THROW_IF( //
opts.arguments.size() > state->arguments.size(),
"provided arguments don't match method argument count"
META_HPP_ASSERT( //
opts.arguments.size() <= state->arguments.size() //
&& "provided arguments don't match method argument count"
);
for ( std::size_t i = 0; i < opts.arguments.size(); ++i ) {
for ( std::size_t i{}, e{std::min(opts.arguments.size(), state->arguments.size())}; i < e; ++i ) {
argument& arg = state->arguments[i];
detail::state_access(arg)->name = std::move(opts.arguments[i].name);
detail::state_access(arg)->metadata = std::move(opts.arguments[i].metadata);
@@ -4556,12 +4556,12 @@ namespace meta_hpp
class_bind<Class>& class_bind<Class>::method_(std::string name, Method method_ptr, string_ilist arguments, Policy) {
auto state = detail::method_state::make<Policy>(std::move(name), method_ptr, {});
META_HPP_THROW_IF( //
arguments.size() > state->arguments.size(),
"provided argument names don't match method argument count"
META_HPP_ASSERT( //
arguments.size() <= state->arguments.size() //
&& "provided argument names don't match method argument count"
);
for ( std::size_t i = 0; i < arguments.size(); ++i ) {
for ( std::size_t i{}, e{std::min(arguments.size(), state->arguments.size())}; i < e; ++i ) {
argument& arg = state->arguments[i];
// NOLINTNEXTLINE(*-pointer-arithmetic)
detail::state_access(arg)->name = std::data(arguments)[i];
@@ -4687,12 +4687,12 @@ namespace meta_hpp
scope_bind& scope_bind::function_(std::string name, Function function_ptr, function_opts opts, Policy) {
auto state = detail::function_state::make<Policy>(std::move(name), function_ptr, std::move(opts.metadata));
META_HPP_THROW_IF( //
opts.arguments.size() > state->arguments.size(),
"provided arguments don't match function argument count"
META_HPP_ASSERT( //
opts.arguments.size() <= state->arguments.size() //
&& "provided arguments don't match function argument count"
);
for ( std::size_t i = 0; i < opts.arguments.size(); ++i ) {
for ( std::size_t i{}, e{std::min(opts.arguments.size(), state->arguments.size())}; i < e; ++i ) {
argument& arg = state->arguments[i];
detail::state_access(arg)->name = std::move(opts.arguments[i].name);
detail::state_access(arg)->metadata = std::move(opts.arguments[i].metadata);
@@ -4706,12 +4706,12 @@ namespace meta_hpp
scope_bind& scope_bind::function_(std::string name, Function function_ptr, string_ilist arguments, Policy) {
auto state = detail::function_state::make<Policy>(std::move(name), function_ptr, {});
META_HPP_THROW_IF( //
arguments.size() > state->arguments.size(),
"provided argument names don't match function argument count"
META_HPP_ASSERT( //
arguments.size() <= state->arguments.size() //
&& "provided argument names don't match function argument count"
);
for ( std::size_t i = 0; i < arguments.size(); ++i ) {
for ( std::size_t i{}, e{std::min(arguments.size(), state->arguments.size())}; i < e; ++i ) {
argument& arg = state->arguments[i];
// NOLINTNEXTLINE(*-pointer-arithmetic)
detail::state_access(arg)->name = std::data(arguments)[i];