double (например, в качестве кода ошибки) неоправданна, так как double не предназначен для этого и не несет семантики ошибок.double имеет ограниченную точность и может представлять специальные значения (NaN, Infinity), что усложняет их интерпретацию как кодов ошибок.double для передачи информации об ошибке между функциями может привести к потери точности или некорректной интерпретации из-за особенностей представления чисел с плавающей точкой.throw/catch) или специализированные типы для кодов ошибок (std::error_code) предоставляют более надежные и явные средства для обработки исключений.Использование double в таком контексте нарушает принципы явного кода и затрудняет отладку.