C++ c++;可变功能:更换的最佳方法是什么?

C++ c++;可变功能:更换的最佳方法是什么?,c++,variadic-functions,C++,Variadic Functions,在我当前的项目中,使用了一些可变函数(省略号),这些函数实际上经常使用。我必须对项目进行一些有影响的更改,所以我想我也可以去掉这些变量 我的问题是,如果传递给它们的参数数量如此多变,以至于创建重载是愚蠢的,那么如何最好地替换它们呢 我听说过可变模板,但它们是一个很好的替代品吗 我的项目中使用的大多数变量都是sprintf或类似函数的包装器。 采用类似iostreams的方法,使用某种操作符/函数一次添加一个项 接受项目向量(如果它们只是同一类型) 创建一个封装所需参数信息的类,并只传递该类的一个

在我当前的项目中,使用了一些可变函数(省略号),这些函数实际上经常使用。我必须对项目进行一些有影响的更改,所以我想我也可以去掉这些变量

我的问题是,如果传递给它们的参数数量如此多变,以至于创建重载是愚蠢的,那么如何最好地替换它们呢

我听说过可变模板,但它们是一个很好的替代品吗

我的项目中使用的大多数变量都是sprintf或类似函数的包装器。

  • 采用类似iostreams的方法,使用某种操作符/函数一次添加一个项
  • 接受项目向量(如果它们只是同一类型)
  • 创建一个封装所需参数信息的类,并只传递该类的一个实例(它可以有多个属性,如果需要,每个属性的长度可以不同)

取决于变量的根深蒂固程度,您可能处于成本/收益表的亏损端。对大型项目的维护始终是在使用现有代码和您所知道的更好的代码之间进行平衡。确保你付出的努力在结果中有真正的价值


有了这个警告。由于您提到您的函数是围绕SeaStFF构建的,所以您可以查看C++流类。你可以考虑替换SaveTFF。词法类型转换也可能有帮助。

有什么特别的原因吗?变量函数的作用是。。。(了解你不喜欢它们的地方有助于找到替代它们的方法)