boost::optional<int> StrToInt(char *const pStr)
{
char *pEndPoint;
int num = strtol(pStr, &pEndPoint, 10);
if ((*pStr == '\0') || (*pEndPoint != '\0'))
{
cout << MSG_NOT_INTEGER;
return boost::none;
}
return num;
}
В служебных функциях лучше не осуществлять вывод в стандартный поток вывода. Если хочется сообщить об ошибке, то либо бросать исключение, либо предусмотреть спец. код возврата (optional это уже позволяет сделать) и отреагировать во внешней функции
В служебных функциях лучше не осуществлять вывод в стандартный поток вывода. Если хочется сообщить об ошибке, то либо бросать исключение, либо предусмотреть спец. код возврата (optional это уже позволяет сделать) и отреагировать во внешней функции