2010-05-28 28 views
4

我花了一些時間使用Google搜索,但沒有找到任何東西。我希望能夠做到這一點:std :: tr1 :: function有一個理智的默認值嗎?

std::tr1::function<void()> foo(SOME_DEFAULT_FUNCTION_THAT_DOES_NOTHING); 
// 
//Some code that could possibly assign foo 
// 
foo(); 

否則,我必須這樣做:

std::tr1::function<void()> foo; 
// 
//Some code that could possibly assign foo 
// 
if(foo) 
{ 
    foo(); 
} 

我意識到,我只能什麼也不做的函數,但是我正在尋找一些標準的方式無需處理檢查函數是否被賦予了空值對象模式的值。

回答

5

void noop() { }

+0

儘可能多的。聽起來不錯! – messenger 2010-05-28 20:51:27

0

您能用boost::optional<std::tr1::function<void()> >嗎?這樣它可以設置或不設置,並且可以使用if檢查來查看是否設置了該功能。

+0

如果檢查我已經可以做到的。我想避免if檢查,並能夠在任何情況下執行該功能。 – messenger 2010-05-28 20:02:34

0

在項目中,我使用

void noop(...) {} 
相關問題