我想将 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 库吗?
谢谢你的输入:)