Commit 8615ff2a authored by Victor Zverovich's avatar Victor Zverovich

Micro-optimize argument retrieval

parent 916ed99d
......@@ -1095,13 +1095,15 @@ class basic_format_args {
void set_data(const format_arg *args) { args_ = args; }
format_arg do_get(size_type index) const {
format_arg arg;
long long signed_types = static_cast<long long>(types_);
if (signed_types < 0) {
unsigned long long num_args =
static_cast<unsigned long long>(-signed_types);
return index < num_args ? args_[index] : format_arg();
if (index < num_args)
arg = args_[index];
return arg;;
}
format_arg arg;
if (index > internal::max_packed_args)
return arg;
arg.type_ = type(index);
......
......@@ -1972,7 +1972,8 @@ FMT_CONSTEXPR Iterator parse_arg_id(Iterator it, IDHandler &&handler) {
do {
c = *++it;
} while (is_name_start(c) || ('0' <= c && c <= '9'));
handler(basic_string_view<char_type>(pointer_from(start), to_unsigned(it - start)));
handler(basic_string_view<char_type>(
pointer_from(start), to_unsigned(it - start)));
return it;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment