C++ 是否有可能检索到;宽度“;从格式字符串
我需要一种从C++ 是否有可能检索到;宽度“;从格式字符串,c++,fmt,C++,Fmt,我需要一种从fmt::formatformat字符串中检索“width”参数的方法 I不想要易于使用auto size=fmt::formatted_size(“{:>5.2f}”,13453453.76345f)提取的格式操作的结果大小 我期待这样的事情 auto width = fmt::with_arg("{:>5.2f}"); assert(width == 5); 而且。。。 如果它也适用于整数,那就太好了: fmt::format("{:>
fmt::format
format字符串中检索“width”参数的方法
I不想要易于使用auto size=fmt::formatted_size(“{:>5.2f}”,13453453.76345f)提取的格式操作的结果大小代码>
我期待这样的事情
auto width = fmt::with_arg("{:>5.2f}");
assert(width == 5);
而且。。。
如果它也适用于整数,那就太好了:
fmt::format("{:>4d}", 42);
// ^
// I want this number (4)
否,宽度在内部用于确定填充量。它不是通过任何公共API提供的。您可以使用解析格式字符串并获取宽度,但这是一个内部函数。否,宽度在内部用于确定填充量。它不是通过任何公共API提供的。您可以使用解析格式字符串并获取宽度,但这是一个内部函数。您需要解决的问题是什么?为什么需要宽度?为什么不将宽度放入传递给format
函数的变量中(例如int width=5;fmt::format(“{:>{}.2f}”,13.23454f,width);
)?然后很容易得到宽度。@Someprogrammerdude,这正是我试图避免的。我尽量避免使用字符串中包含的信息重复其他参数。将{}
添加到格式字符串会对格式字符串添加太多约束。@user23573您可以创建自己的函数get_width(string fmt),在该函数中,您基本上可以通过放置一些浮点值来测量宽度,然后测量结果字符串长度(或对其进行分析)。@user23573,你可以深入研究fmt,看看他们是如何做到这一点的。也许修改fmt以满足您的特定需求?您需要解决的问题是什么?为什么需要宽度?为什么不将宽度放入传递给format
函数的变量中(例如int width=5;fmt::format(“{:>{}.2f}”,13.23454f,width);
)?然后很容易得到宽度。@Someprogrammerdude,这正是我试图避免的。我尽量避免使用字符串中包含的信息重复其他参数。将{}
添加到格式字符串会对格式字符串添加太多约束。@user23573您可以创建自己的函数get_width(string fmt),在该函数中,您基本上可以通过放置一些浮点值来测量宽度,然后测量结果字符串长度(或对其进行分析)。@user23573,你可以深入研究fmt,看看他们是如何做到这一点的。也许修改fmt以满足您的特定需求?parse\u format\u string
正是我感兴趣的函数。有人有例子吗?parse\u format\u string
正是我感兴趣的函数。有人举过例子吗?
fmt::format("{:>4d}", 42);
// ^
// I want this number (4)