代码之家  ›  专栏  ›  技术社区  ›  messenger

std::tr1::函数是否有健全的默认值?

  •  4
  • messenger  · 技术社区  · 16 年前

    我花了一些时间在谷歌上,但没有真正找到任何东西。我希望能够做到:

    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 回复  |  直到 14 年前
        1
  •  5
  •   Dennis Zickefoose    16 年前

    void noop() { }

        2
  •  0
  •   Mark B    16 年前

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

        3
  •  0
  •   Adam Trhon    14 年前

    在我的项目中我使用

    void noop(...) {}
    
    推荐文章