2014-01-30 96 views
1

我有一個普通的C++背景,但是我沒有開發任何與MFC,我碰到一個庫,我需要使便攜式,並有很多呼籲斷言例如移植一個MFC lib到linux和ASSERT

void putValue(LPCTSTR lpszValue) 
    { 
     ASSERT(AfxIsValidString(lpszValue)); 
       . 
       . 
       . 
     } 

MSDN

最典型的使用斷言宏在開發過程中識別程序 錯誤。提供給ASSERT的參數應該是 ,因此只有在程序按照 的預期運行時才適用。該宏評估ASSERT參數,並且如果參數表達式爲false(0),則向用戶發出警報並暫停執行程序 。如果參數爲真(非零),則不採取任何操作。

如果我要移植到GCC中編譯,是正確的做法是將條件放在if語句中並拋出異常id條件有效嗎?

回答

3

我想你可以簡單地說:

#ifndef ASSERT 
#include <cassert> 
#define ASSERT assert 
#endif