我有記錄這個函數的指針的記錄宏,但問題是當記錄在靜態函數中使用的宏沒有這個指針時,我得到編譯錯誤。如何找到函數是否在編譯時是靜態的
e.g
LOG_DEBUG(msg,...) \
Log::WriteLog(Log::LOG_DEBUG, __FILE__, __LINE__, _FUNC_NAME_, this, msg, ## __VA_ARGS__);
我想知道是否有辦法來檢查,如果當前的方法是靜態的,比我既可以使用該指針或傳遞null,避免編譯錯誤。
請讓我知道,如果GNU提供任何預定義的宏來確定當前函數是靜態還是其他方式。
thx爲答案。作爲一名優秀的懶惰程序員,我試圖避免宏的重複,並且基於方法的靜態或者非靜態代替現有的代碼。所以想想,如果在編譯時找到類似於boost靜態檢查的方法,那就太棒了。 – rjoshi 2011-05-12 19:56:12