我必须失明,因为我看不到这一个......
我的代码块周围有一个Poco::Stopwatch
,我知道我可以使用Clock::ClockDiff elapsed() const;
ClockDiff
Int64
来获得结果。
我想使用poco_information_f1("x() took %?? us", diff);
记录结果,但我找不到??
的神奇值。 Google建议%lld
或%Ld
是正确的说明符,但两者都显示为[ERRFMT]
。
任何提示?
答案 0 :(得分:2)
poco_information_f1
是一个宏,它解析为将参数传递给Poco::format
,其文档为here。
因此,右侧修饰符为%?d
,它将采用从short
到64位int的任何整数类型。您几乎想到了%??
:D
这是有效的,因为Poco::format
不是C风格的可变参数函数;相反,它需要额外的类型Poco::Any
的参数,因此函数确切地知道参数是什么数据类型。