本文整理汇总了C++中std::string::max_size方法的典型用法代码示例。如果您正苦于以下问题:C++ string::max_size方法的具体用法?C++ string::max_size怎么用?C++ string::max_size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::string
的用法示例。
在下文中一共展示了string::max_size方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: safe_vsprintf
int safe_vsprintf(std::string& buf, const char * fmt, va_list argptr)
{
char buffer[1024];
int ret = ::vsnprintf(buffer, sizeof(buffer), fmt, argptr);
if (ret >= (int) sizeof(buffer))
{
if (ret >= (int) buf.max_size())
{
buf.clear();
printf("safe_vsprintf: string max_size limit(%d)", buf.max_size());
return 0;
}
buf.resize(ret);
ret = vsnprintf(&buf.at(0), ret + 1, fmt, argptr);
}
else
{
buf = buffer;
}
//va_end(argptr);
return ret;
}
示例2: decltype
inline const std::string& path_to_self() {
static constexpr const char self[] = "/proc/self/exe";
static std::string r;
static std::once_flag f;
std::call_once(f, []() {
using N = decltype(readlink(self, &r.front(), r.size()));
constexpr decltype(r.size()) max_path_sz{PATH_MAX};
N read_cnt;
do {
r.resize(std::max(2 * r.size(), max_path_sz));
read_cnt = readlink(self, &r.front(), r.size());
} while (read_cnt == -1 && r.size() < r.max_size());
r.resize(std::max(read_cnt, N{0}));
});
return r;
}