在我目前的项目中,正在使用一些可变函数(省略号),这些函数实际上已被广泛使用。我必须对项目做一些有影响的改变,所以我想我也可以摆脱这些变量。
我的问题是,如果传递给它们的参数数量如此变化以至于创建重载会很愚蠢,那么最好如何替换它们?
我听说过可变参数模板,但它们是否是一个很好的替代品?
我项目中使用的大多数可变参数都是围绕sprintf或某些此类函数的包装器。
答案 0 :(得分:4)
取决于可变参数的根深蒂固,您可能处于成本/收益规模的失败之中。大型项目的维护始终是在处理代码存在与您知道的更好之间的平衡行为。确保您投入的精力为结果带来实际价值。
因此需要注意。既然你提到你的函数是围绕sprintf构建的,你可以查看C ++流类。您可以将std::ostringstream视为sprintf的替代品。像that provided by Boost这样的词汇演员也可以提供帮助。
答案 1 :(得分:0)