【发布时间】:2018-11-09 11:13:36
【问题描述】:
我读到可变参数函数不是好的编码。
我有一个非常旧的框架,其中包含一些可变参数函数,我想删除保留调试功能的可变参数。
DEBUG(wchar_t* text, ...)
此调试函数使用相同的字符串 sintaxis %d,%f... 等调用类似 printf 的函数。
正确的方法应该是什么?
【问题讨论】:
-
你可以使用 boost.format 吗?
-
与same answer的不同问题
-
我不会改变这一点。具有可变参数列表的函数非常适合打印、记录等。除非您想将其更改为 C++ 和类似流的接口。当然,这将是一个重大的代码更改。
-
你可以进行一大堆重写,这样你的所有格式字符串都被更改为
debug_stream << "Whatever" << args << "here" << etc;,但这似乎不值得。 “没有好的编码”对“目前工作正常”并没有太大的说服力 -
这正是我认为我应该做的事情