mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-14 11:40:35 +07:00
replace some throws to asserts
This commit is contained in:
@@ -16,8 +16,8 @@
|
||||
#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, ...) \
|
||||
|
||||
@@ -64,7 +64,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)...);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,12 +72,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);
|
||||
@@ -122,12 +122,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);
|
||||
@@ -142,12 +142,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];
|
||||
@@ -194,12 +194,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);
|
||||
@@ -215,12 +215,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];
|
||||
|
||||
@@ -28,12 +28,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);
|
||||
@@ -47,12 +47,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];
|
||||
|
||||
Reference in New Issue
Block a user