0
在C#中,我們可以做一個方法像這樣:我怎樣才能讓C++中的調試功能,如ConditionalAttribute在C#
[Conditional("DEBUG")]
private void MyFunction()
{
}
在發行,此方法將不再是「存在」。我有一個類,我想在每個方法的開始執行相同的斷言,所以我想把這組斷言放在他們自己的方法中。如果我選擇這樣做,我是否會依賴編譯器優化出一個空函數(因爲assert會被優化)?例如:
class MyClass
{
private:
void DebugFunction()
{
assert(...);
assert(...);
assert(...);
// ...
}
};
或將我引入一個宏:
#ifdef NDEBUG
#define DebugFunction
#endif
什麼是做到這一點的最好方法是什麼?
我相信你想在那裏有#ifndef NDEBUG ... – JaredC 2011-02-05 03:36:45