ToB企服应用市场:ToB评测及商务社交产业平台
标题:
通过宏封装实现std::format编译期检查参数数量是否一致
[打印本页]
作者:
来自云龙湖轮廓分明的月亮
时间:
2022-9-16 17:22
标题:
通过宏封装实现std::format编译期检查参数数量是否一致
背景
std::format在传参数量少于格式串所需参数数量时,会抛出异常。而在大部分的应用场景下,参数数量不一致提供编译报错更加合适,可以促进我们更早发现问题并进行改正。
最终效果
[code]// 测试输出接口。template void Print(const std::string& _Fmt, const T&... _Args){ cout = '0' && fmt
= MAX_ARGS_NUM) { // 当前编号大于最大上限,则直接视为非法格式串 return -1; } } } else if (fmt
== ':') { // 遇到冒号,说明接下来是格式串规则,直接跳过 for (; i + 1 < fmt.size() && fmt[i + 1] != '}'; ++i) { ; } } else { // 解析替换串时,遇上其他字符,均将格式串视为非法。 return -1; } } break; } } // 最终状态必须为普通串解析状态。 return state == NORMAL ? nArgsNum : -1;}// 可变参数数量辅助器template std::integral_constant VariableArgsNumHelper(const Args & ...);// 测试输出接口。template void Print(const std::string& _Fmt, const T&... _Args){ cout
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4