Std :: numeric_limits :: max () to std :: StreamposC++

Программы на C++. Форум разработчиков
Anonymous
Std :: numeric_limits :: max () to std :: Streampos

Сообщение Anonymous »

MSVC и GCC интерпретируют следующий код одинаково. STD :: Streampos может быть построена только из Std :: Streamoff , в то время как подписан std :: streamoff . Таким образом, оба компилятора интерпретируют максимальное значение size_t как -1 . Мне ясно, почему, но как это ходить? Кроме того, разве это не недостаток в дизайне? < /P>

Код: Выделить всё

std::ifstream file(filePath, std::ios::in | std::ios::binary | std::ios::ate);
if (!file.is_open() || file.bad())
return StatusCode::fileOpenError;

std::streampos fileSize = file.tellg();
constexpr std::streamoff maxSupportedFileSize = std::numeric_limits::max();
if (fileSize > maxSupportedFileSize)
return StatusCode::unsupportedFileSize;
Debugger Debugger Watch on the Variable:


Подробнее здесь: https://stackoverflow.com/questions/794 ... dstreampos

Вернуться в «C++»