std::format
有一个(编译时和运行时)格式字符串验证,但有一件事没有包括在这个验证中,那就是是否有足够的{}
占位符用于所有参数(过多的参数会被忽略)。
我假设这在某些罕见的情况下可能有用(例如,如果您生成格式字符串),但我不需要它,并且因为这个我有一些bug。
我能做些什么来检查这个编译时的问题吗?可能是通过在我自己的函数中 Package std::format
。
范例:
#include <format>
#include <iostream>
int main()
{
std::cout << std::format("{} {}", 1, 2, 3, 4, 5) << '\n'; // Prints `1 2`, no error!
}
字符串
注意:std::format
有编译时格式字符串验证。他们只是不检查这个特定的问题(过多的参数)。
1条答案
按热度按时间eh57zj3b1#
你可以添加wrapper:
字符串
Demo