Are you really needing to check the output? If so, returning a bool and taking the result as a parameter is a good option.
You could also return a constant for invalid input: (std::numeric_limits<int>::max() or similar for ints, and NaN for floats). With NaN, this is a good option, but with integers, you'll have to be sure to check the result before doing any operations.
You might also want to balidate and convert the input as soon as possible, to isolate invalid input at the doorways to your program.