2013-01-17 33 views
-1

是否有可能僅僅檢查RTTI而沒有捕獲異常的開銷? dynamic_cast只是拋出一個異常,我只需要看看是否有RTTI或沒有在一個高度使用的代碼段,其中一個例外將是一個巨大的問題...針對運行時類型信息的C++測試

+5

'dynamic_cast'指針類型不會引發異常。但我仍然不確定你想要做什麼。 「RTTI」是什麼意思?一個示例代碼的說明將是很好的。 –

+1

['typeid'](http://en.wikipedia.org/wiki/Typeid) – 2013-01-17 05:07:43

+0

那麼它確實拋出一個指針說異常* char * ...基本上我只是想測試是否是一個字符*或帶RTTI的實際類類型用於字符串格式化函數。不幸的是,這個類型被傳遞給一個函數,所以typeid將不起作用... –

回答

0

您需要檢查您創建的指針與dynamic_cast對空值。如果它等於NULL,則投射不起作用。如果沒有,演員就會工作,並且不會拋出異常。

相關問題