我正在尝试使用对fmt的调用来替换自定义类型安全格式函数。当前实现支持“ u”说明符,该说明符将值打印为无符号的,无论其符号如何。我想在对fmt :: vformat的调用中添加相同的功能。
我尝试仅将'd'替换为'u'的实例,但这不会正确显示负值。
我需要知道如何注入一个自定义整数说明符,该说明符使用强制转换为无符号整数的值来调用当前实现。
答案 0 :(得分:1)
您无法将新的格式说明符添加到内置格式化程序中,因此我建议您仅转换为unsigned
:
int answer = -42;
fmt::print("{}", unsigned(answer)); // prints 4294967254