【发布时间】:2021-05-04 12:06:17
【问题描述】:
我想将 fmt 库用作调试框架的一部分。 但是我们的项目是混合 c 和 c++。
fmt 与 c++ 配合得很好,但在 c 中我们有 printf() 之类的格式字符串。
//c readable header
#ifdef __cplusplus
extern "C"
{
#endif
void Foo(char* format, ...);
#ifdef __cplusplus
}
#endif
//impl.cpp
void Foo(char* format, ...)
{
va_list aptr;
va_start(aptr, format);
//pass aptr to fmt lib somehow
va_end(aptr);
}
因此,我必须从 C 代码中“隐藏”C++ 部分。 c 中如何进行格式化的唯一方法(我知道)是使用 va_args。但是它们不适用于 fmt 模板,因为第一个模板在运行时执行,另一个在编译时执行
=>所以问题 你知道如何使用 C 代码中的 fmt 库吗?
感谢您的输入 :)
【问题讨论】: