#include "xbt/str.h"
#include <simgrid/modelchecker.h>
+#include <boost/lexical_cast.hpp>
#include <cerrno>
#include <cinttypes>
#include <cstdio> // setvbuf
// Fetch socket from MC_ENV_SOCKET_FD:
const char* fd_env = std::getenv(MC_ENV_SOCKET_FD);
- int fd = xbt_str_parse_int(fd_env, "Not a number in variable '" MC_ENV_SOCKET_FD "'");
+ int fd;
+ try {
+ fd = boost::lexical_cast<int>(fd_env);
+ } catch (boost::bad_lexical_cast const&) {
+ xbt_die("Not a number in variable '%s': %s", MC_ENV_SOCKET_FD, fd_env);
+ }
XBT_DEBUG("Model-checked application found socket FD %i", fd);
instance_ = std::make_unique<simgrid::mc::AppSide>(fd);
#include "xbt/replay.hpp"
#include "xbt/str.h"
+#include <boost/lexical_cast.hpp>
#include <cmath>
#include <limits>
#include <memory>
/* Helper functions */
static double parse_double(const std::string& string)
{
- return xbt_str_parse_double(string.c_str(), "not a double");
+ try {
+ return boost::lexical_cast<double>(string);
+ } catch (boost::bad_lexical_cast const&) {
+ throw std::invalid_argument("not a double: " + string);
+ }
}
template <typename T> static T parse_integer(const std::string& string)