Почему boost::lexical_cast при неудаче всегда выбрасывает ис
От: RedApe Беларусь  
Дата: 23.09.15 12:19
Оценка:
А вот интересно, не существует способа при помощи lexical_cast преобразовать строку в число не зная заранее является ли строка корректным числом без выброса исключения?

  std::string text = GetValueFromEdit();
  double d;
  try 
  {
    d = boost::lexical_cast<double>(text);
  } catch(boost::bad_lexical_case&) 
  {
    d = 0;
  }

  // почему нет такого варианта
  if (!boost::lexical_cast<double>(text, d)) 
  {
     d = 0;
  }

  // или какого-нибудь еще


Есть же, к примеру, две версии dynamic_cast, с исключениями и без исключений.
Как же тот принцип что исключения нужны для исключительных ситуаций?

Или все пользуются каким-то другим методом?
--
RedApe
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.