Да, думаю приводить в float а потом проверять, что получилось нормальное число, - нормальное решение.

С другой стороны, можно побороться с проблемами компиляции. Они на какой платформе возникли? Если на Windows, то вероятно нужно ключики соответствующие дать. Потом можно CMake подправить...