@@ -39,28 +39,20 @@ Methane short check macroses throwing exceptions on negative check result
3939
4040#include " Exceptions.hpp"
4141
42- #ifndef __FUNCTION_NAME__
43- #ifdef WIN32
44- #define __FUNCTION_NAME__ __FUNCTION__
45- #else
46- #define __FUNCTION_NAME__ __func__
47- #endif
48- #endif
49-
5042#ifdef METHANE_CHECKS_ENABLED
5143
5244#define META_INVALID_ARG_DESCR (argument, description, ...) \
53- throw Methane::InvalidArgumentException<std::decay_t <decltype (argument)>>(__FUNCTION_NAME__ , #argument, argument, fmt::format(description, ## __VA_ARGS__))
45+ throw Methane::InvalidArgumentException<std::decay_t <decltype (argument)>>(std::source_location::current() , #argument, argument, fmt::format(description, ## __VA_ARGS__))
5446
5547#define META_CHECK_DESCR (argument, condition, description, ...) \
5648 if (!(condition)) \
57- throw Methane::InvalidArgumentException<std::decay_t <decltype (argument)>>(__FUNCTION_NAME__ , #argument, argument, fmt::format(description, ## __VA_ARGS__))
49+ throw Methane::InvalidArgumentException<std::decay_t <decltype (argument)>>(std::source_location::current() , #argument, argument, fmt::format(description, ## __VA_ARGS__))
5850
5951#define META_CHECK (argument, condition ) META_CHECK_DESCR(argument, condition, #condition)
6052
6153#define META_CHECK_NAME_DESCR (argument_name, condition, description, ...) \
6254 if (!(condition)) \
63- throw Methane::InvalidArgumentException<bool >(__FUNCTION_NAME__ , argument_name, fmt::format(description, ## __VA_ARGS__))
55+ throw Methane::InvalidArgumentException<bool >(std::source_location::current() , argument_name, fmt::format(description, ## __VA_ARGS__))
6456
6557#define META_CHECK_NAME (argument_name, condition ) META_CHECK_NAME_DESCR(argument_name, condition, #condition)
6658
@@ -76,73 +68,73 @@ Methane short check macroses throwing exceptions on negative check result
7668
7769#define META_CHECK_RANGE_DESCR (argument, range_begin, range_end, description, ...) \
7870 if (argument < static_cast <std::decay_t <decltype (argument)>>(range_begin) || argument >= static_cast <std::decay_t <decltype (argument)>>(range_end)) \
79- throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (range_begin)>>(__FUNCTION_NAME__ , #argument, argument, \
71+ throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (range_begin)>>(std::source_location::current() , #argument, argument, \
8072 { range_begin, static_cast <std::decay_t <decltype (range_begin)>>(range_end) }, false , fmt::format(description, ## __VA_ARGS__))
8173
8274#define META_CHECK_RANGE (argument, range_begin, range_end ) META_CHECK_RANGE_DESCR(argument, range_begin, range_end, " " )
8375
8476#define META_CHECK_RANGE_INC_DESCR (argument, range_begin, range_end, description, ...) \
8577 if (argument < static_cast <std::decay_t <decltype (argument)>>(range_begin) || argument > static_cast <std::decay_t <decltype (argument)>>(range_end)) \
86- throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (range_begin)>>(__FUNCTION_NAME__ , #argument, argument, \
78+ throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (range_begin)>>(std::source_location::current() , #argument, argument, \
8779 { range_begin, static_cast <std::decay_t <decltype (range_begin)>>(range_end) }, true , fmt::format(description, ## __VA_ARGS__))
8880
8981#define META_CHECK_INC_RANGE (argument, range_begin, range_end ) META_CHECK_RANGE_INC_DESCR(argument, range_begin, range_end, " " )
9082
9183#define META_CHECK_LESS_DESCR (argument, upper_limit, description, ...) \
9284 if (argument >= static_cast <std::decay_t <decltype (argument)>>(upper_limit)) \
93- throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (upper_limit)>>(__FUNCTION_NAME__ , #argument, argument, \
85+ throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (upper_limit)>>(std::source_location::current() , #argument, argument, \
9486 { std::numeric_limits<std::decay_t <decltype (upper_limit)>>::min (), upper_limit }, false , fmt::format(description, ## __VA_ARGS__))
9587
9688#define META_CHECK_LESS (argument, upper_limit ) META_CHECK_LESS_DESCR(argument, upper_limit, " " )
9789
9890#define META_CHECK_LESS_OR_EQUAL_DESCR (argument, upper_limit, description, ...) \
9991 if (argument > static_cast <std::decay_t <decltype (argument)>>(upper_limit)) \
100- throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (upper_limit)>>(__FUNCTION_NAME__ , #argument, argument, \
92+ throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (upper_limit)>>(std::source_location::current() , #argument, argument, \
10193 { std::numeric_limits<std::decay_t <decltype (upper_limit)>>::min (), upper_limit }, true , fmt::format(description, ## __VA_ARGS__))
10294
10395#define META_CHECK_LESS_OR_EQUAL (argument, upper_limit ) META_CHECK_LESS_OR_EQUAL_DESCR(argument, upper_limit, " " )
10496
10597#define META_CHECK_GREATER_DESCR (argument, min_value, description, ...) \
10698 if (argument <= static_cast <std::decay_t <decltype (argument)>>(min_value)) \
107- throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (min_value)>>(__FUNCTION_NAME__ , #argument, argument, \
99+ throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (min_value)>>(std::source_location::current() , #argument, argument, \
108100 { min_value, std::numeric_limits<std::decay_t <decltype (min_value)>>::max () }, false , fmt::format(description, ## __VA_ARGS__))
109101
110102#define META_CHECK_GREATER (argument, upper_limit ) META_CHECK_GREATER_DESCR(argument, upper_limit, " " )
111103
112104#define META_CHECK_GREATER_OR_EQUAL_DESCR (argument, min_value, description, ...) \
113105 if (argument < static_cast <std::decay_t <decltype (argument)>>(min_value)) \
114- throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (min_value)>>(__FUNCTION_NAME__ , #argument, argument, \
106+ throw Methane::OutOfRangeArgumentException<std::decay_t <decltype (argument)>, std::decay_t <decltype (min_value)>>(std::source_location::current() , #argument, argument, \
115107 { min_value, std::numeric_limits<std::decay_t <decltype (min_value)>>::max () }, true , fmt::format(description, ## __VA_ARGS__))
116108
117109#define META_CHECK_GREATER_OR_EQUAL (argument, min_value ) META_CHECK_GREATER_OR_EQUAL_DESCR(argument, min_value, " " )
118110
119111#define META_CHECK_NOT_EMPTY_DESCR (argument, description, ...) \
120112 if (argument.empty()) \
121- throw Methane::EmptyArgumentException<std::decay_t <decltype (argument)>>(__FUNCTION_NAME__ , #argument, fmt::format(description, ## __VA_ARGS__))
113+ throw Methane::EmptyArgumentException<std::decay_t <decltype (argument)>>(std::source_location::current() , #argument, fmt::format(description, ## __VA_ARGS__))
122114
123115#define META_CHECK_NOT_EMPTY (argument ) META_CHECK_NOT_EMPTY_DESCR(argument, " " )
124116
125117#define META_CHECK_NOT_NULL_DESCR (argument, description, ...) \
126118 if (!argument) \
127- throw Methane::NullPointerArgumentException<std::decay_t <decltype (argument)>>(__FUNCTION_NAME__ , #argument, fmt::format(description, ## __VA_ARGS__))
119+ throw Methane::NullPointerArgumentException<std::decay_t <decltype (argument)>>(std::source_location::current() , #argument, fmt::format(description, ## __VA_ARGS__))
128120
129121#define META_CHECK_NOT_NULL (argument ) META_CHECK_NOT_NULL_DESCR(argument, " " )
130122
131123#define META_CHECK_NOT_ZERO_DESCR (argument, description, ...) \
132124 if (!argument) \
133- throw Methane::ZeroArgumentException<std::decay_t <decltype (argument)>>(__FUNCTION_NAME__ , #argument, fmt::format(description, ## __VA_ARGS__))
125+ throw Methane::ZeroArgumentException<std::decay_t <decltype (argument)>>(std::source_location::current() , #argument, fmt::format(description, ## __VA_ARGS__))
134126
135127#define META_CHECK_NOT_ZERO (argument ) META_CHECK_NOT_ZERO_DESCR(argument, " " )
136128
137129#define META_UNEXPECTED_DESCR (argument, description, ...) \
138- throw Methane::UnexpectedArgumentException<decltype (argument)>(__FUNCTION_NAME__ , #argument, argument, fmt::format(description, ## __VA_ARGS__))
130+ throw Methane::UnexpectedArgumentException<decltype (argument)>(std::source_location::current() , #argument, argument, fmt::format(description, ## __VA_ARGS__))
139131
140132#define META_UNEXPECTED (argument ) META_UNEXPECTED_DESCR(argument, " " )
141133#define META_UNEXPECTED_RETURN (argument, return_value ) META_UNEXPECTED_DESCR(argument, " " )
142134#define META_UNEXPECTED_RETURN_DESCR (argument, return_value, description, ...) META_UNEXPECTED_DESCR(argument, description, ## __VA_ARGS__)
143135
144136#define META_FUNCTION_NOT_IMPLEMENTED_DESCR (description, ...) \
145- throw Methane::NotImplementedException (__FUNCTION_NAME__ , fmt::format(description, ## __VA_ARGS__))
137+ throw Methane::NotImplementedException (std::source_location::current() , fmt::format(description, ## __VA_ARGS__))
146138
147139#define META_FUNCTION_NOT_IMPLEMENTED_RETURN_DESCR (return_value, description, ...) META_FUNCTION_NOT_IMPLEMENTED_DESCR(description, ## __VA_ARGS__)
148140
0 commit comments