From bbcb6e839430807458d6d5bcaf73dbdbb4aaa2ab Mon Sep 17 00:00:00 2001 From: jamboree Date: Tue, 9 Jun 2015 16:13:43 +0800 Subject: [PATCH] Fix warning --- format.cc | 45 +++++++++++++++++++++++++++++++++++++++++++++ format.h | 49 ++++++------------------------------------------- 2 files changed, 51 insertions(+), 43 deletions(-) diff --git a/format.cc b/format.cc index 34c3405b..9d05991d 100644 --- a/format.cc +++ b/format.cc @@ -585,6 +585,49 @@ FMT_FUNC void fmt::internal::format_windows_error( } #endif +template +void fmt::ArgList::Map::init(const ArgList &args) { + if (!map_.empty()) + return; + const internal::NamedArg* named_arg; + bool use_values = args.type(MAX_PACKED_ARGS - 1) == internal::Arg::NONE; + if (use_values) { + for (unsigned i = 0;/*nothing*/; ++i) { + internal::Arg::Type arg_type = args.type(i); + switch (arg_type) { + case internal::Arg::NONE: + return; + case internal::Arg::NAMED_ARG: + named_arg = static_cast*>(args.values_[i].pointer); + map_.insert(Pair(named_arg->name, *named_arg)); + break; + default: + /*nothing*/; + } + } + return; + } + for (unsigned i = 0; i != MAX_PACKED_ARGS; ++i) { + internal::Arg::Type arg_type = args.type(i); + if (arg_type == internal::Arg::NAMED_ARG) { + named_arg = static_cast*>(args.args_[i].pointer); + map_.insert(Pair(named_arg->name, *named_arg)); + } + } + for (unsigned i = MAX_PACKED_ARGS;/*nothing*/; ++i) { + switch (args.args_[i].type) { + case internal::Arg::NONE: + return; + case internal::Arg::NAMED_ARG: + named_arg = static_cast*>(args.args_[i].pointer); + map_.insert(Pair(named_arg->name, *named_arg)); + break; + default: + /*nothing*/; + } + } +} + // An argument formatter. template class fmt::internal::ArgFormatter : @@ -736,6 +779,8 @@ FMT_FUNC Arg fmt::internal::FormatterBase::do_get_arg( break; case Arg::NAMED_ARG: arg = *static_cast(arg.pointer); + default: + /*nothing*/; } return arg; } diff --git a/format.h b/format.h index e9da7c4a..0157f939 100644 --- a/format.h +++ b/format.h @@ -1176,54 +1176,17 @@ struct fmt::ArgList::Map { typedef std::map, internal::Arg> MapType; typedef typename MapType::value_type Pair; - void init(const ArgList &args) { - if (!map_.empty()) - return; - bool use_values = args.type(MAX_PACKED_ARGS - 1) == internal::Arg::NONE; - if (use_values) { - add_packed(args, args.values_); - return; - } - add_packed(args, args.args_); - const internal::NamedArg* named_arg; - for (unsigned i = MAX_PACKED_ARGS; ; ++i) { - switch (args.args_[i].type) { - case internal::Arg::NONE: - return; - case internal::Arg::NAMED_ARG: - named_arg = static_cast*>(args.args_[i].pointer); - map_.insert(Pair(named_arg->name, *named_arg)); - break; - } - } - } + void init(const ArgList &args); - const internal::Arg* find(const fmt::BasicStringRef &name) const - { - typename MapType::const_iterator it = map_.find(name); - if (it != map_.end()) - return &it->second; - return 0; + const internal::Arg* find(const fmt::BasicStringRef &name) const { + typename MapType::const_iterator it = map_.find(name); + if (it != map_.end()) + return &it->second; + return 0; } private: - template - void add_packed(const ArgList &args, const T* data) { - const internal::NamedArg* named_arg; - for (unsigned i = 0; i != MAX_PACKED_ARGS; ++i) { - internal::Arg::Type arg_type = args.type(i); - switch (arg_type) { - case internal::Arg::NONE: - return; - case internal::Arg::NAMED_ARG: - named_arg = static_cast*>(data[i].pointer); - map_.insert(Pair(named_arg->name, *named_arg)); - break; - } - } - } - MapType map_; };