我不知道是否有可能在不知道所有参数的名称(但知道所有参数类型的每个细节)的情况下访问成员函数的参数列表。请参见下面的代码:访问函数参数时不知道名字可能
struct TypeA
{
int a;
int b;
};
class TypeB
{
public:
string mSth;
char* mPtr;
};
class SomeClass
{
public:
inline void SomeFunc(struct TypeA, TypeB&)
{
// how to access the parameters here??
// if no parameter names are given??
}
};
为什么我想这样做是因为被一些工具生成我的代码,每个该工具生成它的时候给了不同的名称的SomeClass::SomeFunc
的放慢参数列表。
例如,这次是inline void SomeFunc(struct TypeA param1, TypeB& param2)
,下一次可能是inline void SomeFunc(struct TypeA param3, TypeB& param4)
。
而且我不想仅仅因为参数名称被改变而重写函数体。
如果要在函数中使用它们,'struct TypeA,TypeB&'都需要一个名称,如果没有它们,它就不应该编译。函数原型不需要命名参数,但定义的确如此。 – NathanOliver 2015-03-13 13:16:33
@NathanOliver不,你可以在定义中有未命名的参数,你只是不能访问它们。 – 2015-03-13 13:18:14
@NathanOliver:你有标准的引用吗?我在函数定义中看到很多未命名的参数。这是避免“未使用变量”警告的一种方法,我从来没有见过一个以任何方式抱怨它的编译器。 – 2015-03-13 13:18:16