使用size_t的正确形式(将-1作为默认值传递以获得最大大小)

Ale*_*sen 3 c c++ unsigned

我正在尝试向后解析文本文件.我已完成解析,现在我试图给我的函数一个限制,以便它不会读取我的整个5Mb-2Gb日志文件.我将这个限制作为size_t传递,我试图想办法默认限制来读取文件中的所有内容.

因为将-1传递给无符号类型将设置最高位,我假设这将意味着我得到size_t的最大大小.我想知道,这是不好的形式?此外,是否有更好的方法来实现我的目标.

mfo*_*ini 5

为了获得size_t可以容纳的最大可能值,请使用std::numeric_limits.这将是最便携的方式:

#include <limits>

size_t max_value = std::numeric_limits<size_t>::max();
Run Code Online (Sandbox Code Playgroud)