Merge #13383: bench: Use non-throwing ParseDouble(...) instead of throwing boost::lexical_cast<double>(...)

f41d339b78 bench: Use non-throwing ParseDouble(...) instead of throwing boost::lexical_cast<double>(...) (practicalswift)

Pull request description:

  * Non-Boost is better than Boost.
  * Non-throwing is better than throwing.
  * Explicit error handling is better than implicit error handling.
  * `ParseDouble(…)` deserves to be used outside of its unit tests :-)

Tree-SHA512: a8cf04a5f8363cb7ced0bcaf1fed00e1e5dd6a63a6c11e5f0ba4e5c845b0df7c2b050d887075f158cd62dc7e02843ecaafc15e42e383c066461c6d7399e06b49
This commit is contained in:
Wladimir J. van der Laan 2018-06-04 08:44:07 +02:00
commit 2722a1f8e9
No known key found for this signature in database
GPG key ID: 1E4AED62986CD25D

View file

@ -6,11 +6,10 @@
#include <crypto/sha256.h>
#include <key.h>
#include <validation.h>
#include <util.h>
#include <random.h>
#include <boost/lexical_cast.hpp>
#include <util.h>
#include <utilstrencodings.h>
#include <validation.h>
#include <memory>
@ -64,8 +63,11 @@ int main(int argc, char** argv)
std::string scaling_str = gArgs.GetArg("-scaling", DEFAULT_BENCH_SCALING);
bool is_list_only = gArgs.GetBoolArg("-list", false);
double scaling_factor = boost::lexical_cast<double>(scaling_str);
double scaling_factor;
if (!ParseDouble(scaling_str, &scaling_factor)) {
fprintf(stderr, "Error parsing scaling factor as double: %s\n", scaling_str.c_str());
return EXIT_FAILURE;
}
std::unique_ptr<benchmark::Printer> printer(new benchmark::ConsolePrinter());
std::string printer_arg = gArgs.GetArg("-printer", DEFAULT_BENCH_PRINTER);