我正在處理可能無效的原始函數指針(指向不正確的函數)/ null如果應用程序(源不可用)我與更新進行交互。我想創建一個繼承std :: function的類,它會重載operator(),並在每次調用類時向stdout發送消息,然後調用原始函數指針。這將完成,所以我將能夠輕鬆地隔離哪個函數會因空調用而崩潰。我並不擔心開銷,因爲只有在使用_DEBUG時才能在調試模式下使用它。因爲STL的實現取決於編譯器,並且從編譯器繼承它通常是一個壞主意,所以我不確定如何執行這個。我使用的編譯器是MSVC(2015)。通過繼承代理std ::函數
我該怎麼做?
爲什麼你不寫一個包裝呢? – vsoftco
,因爲在發佈模式,我希望它是原始的std ::函數,編寫一個包裝將需要我實現所有std :: function函數。例如:#ifdef _DEBUG使用FunctionPointer = DebugFunction; #else使用FunctionPointer = std :: function; #endif – otc