我不知道是否有可能在不知道所有參數的名稱(但知道所有參數類型的每個細節)的情況下訪問成員函數的參數列表。請參見下面的代碼:訪問函數參數時不知道名字可能
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