3

グーグルでしばらく時間を費やしましたが、実際には何も見つかりませんでした。私はこれを行うことができるようにしたい:

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

何もしない関数を作成できることはわかっていますが、関数にnullオブジェクトパターンの値が与えられたかどうかを確認するためのチェックを処理する必要がない標準的な方法を探しています。

4

3 に答える 3

5

void noop() { }

于 2010-05-28T20:50:37.113 に答える
0

を使用できますboost::optional<std::tr1::function<void()> >か?そうすれば、設定することもしないこともでき、if チェックを使用して関数が設定されているかどうかを確認できます。

于 2010-05-28T20:00:51.237 に答える
0

私のプロジェクトでは、

void noop(...) {}
于 2011-10-25T09:55:00.557 に答える