【发布时间】:2015-10-06 08:04:22
【问题描述】:
通常在我的代码中,我需要对各种变量使用特定的函数,即
object->SetStatus("var1",1); object->SetAddress("var1",&var1);
object->SetStatus("var2",1); object->SetAddress("var2",&var2);
object->SetStatus("var3",1); object->SetAddress("var3",&var3);
...
我的想法是使用一个通过调用它来自动执行此操作的函数,即
object->function(var1,var2,var3,...);
要实现这一点,我必须解决 3 个问题
- 调用function()时需要读取参数个数
- 我需要以某种方式解析代码中的参数名称
- 由于变量的类型不同,我需要想办法让function()类型“透明”
由于我是 c++ 编码的新手,所以我尝试搜索类似的东西,但我找不到任何东西。
非常欢迎任何帮助、建议或评论!
【问题讨论】:
-
省略号是您要查找的关键字,但一般来说,您通常可以做一些更好的事情来避免使用它们。
-
你在编写什么应用程序(也许是一些解释器)?在 C++11 还是 C++03 中?
var1的类型是什么? -
@BasileStarynkevitch :我在 CERN 的数据分析框架中编码,称为 root。类型为
int、double和float,数值为 -
省略号的问题是被调用的函数无法知道传递了多少参数,这正是 OP 所要求的。您可以添加一个计数作为第一个/第二个参数或具有唯一的参数结束值。
-
另外,“功能”在做什么?可能有一种不同的方法来解决这个问题,那就是更多的 C++。