可能重複:
Macro/keyword which can be used to print out method name?在運行時C++中有沒有一種有效的方法來檢索函數的全部簽名?
是否有C++的有效途徑,在運行時檢索功能的完整簽名?
我需要這個用於記錄目的。我知道宏像__FUNCTION__
,但沒有達到目的,因爲它只是返回函數名稱。可能有許多相同功能的重載版本,我想記錄完整的功能簽名。我正在尋找一個解決方案,即使功能簽名被修改,也能正常工作。該解決方案應該始終記錄當前函數簽名
void log(const char* const message)
{
cout << message << endl;
}
void ABC(const int& number)
{
Log(???); // what should I pass to this function so full signature of the ABC function is logged??
}
是否要打印參數名稱(例如「數字」)或參數值(例如「42」)? – selbie
參數值不是簽名的一部分... –
是的,我想要完整的簽名。通過上面的例子,輸出應該是「void ABC(const int&number)」 –