std :: tr1 :: function是否有一个合理的默认值?

时间:2010-05-28 19:50:59

标签: c++ tr1

我花了一些时间用Google搜索,但没有找到任何东西。我希望能够做到这一点:

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();
}

我意识到我可以创建一个什么都不做的函数,但是我正在寻找一些不必处理检查的标准方法,以查看函数是否被赋予了空对象模式的值。

3 个答案:

答案 0 :(得分:5)

void noop() { }

答案 1 :(得分:0)

你能使用boost::optional<std::tr1::function<void()> >吗?这样它可以设置或不设置,你可以使用if检查来查看功能是否已经设置。

答案 2 :(得分:0)

在我的项目中,我使用

void noop(...) {}