2011-10-24 2 views
1

私は機能void get(boost::function<void(void)> callback) { callback(); }を持っています。 コールバックが何もしないように、他の関数、変数、または構造体を実装せずにget(boost::bind(/* don't know what to put here*/));のような呼び出しを行いたいと思います。 C++ 03にこのような「ノーオペレーション」コールバックを実装できますか? boost::bind()はブーストを使用してノーオペレーションファンクタを実装::バインド

使用が好まが、必須ではありません - とすることができ、私の目標を達成するために、他のいくつかのトリックがあります。

+3

理由だけ '){}(すなわち'空隙NOOP、NOOP機能を使用しませんか? –

+0

@JoachimPileborgこれは、OPが明示的に避けたい機能を実装することを意味するためです。 – avakar

+2

...またはクールなC++ 11: '[](){}' –

答えて

4

boost::bind(std::plus<int>(), 0, 0)のようなものを使用してください。これは最適化する必要がありません。

あなたの制限を緩和し、代わりにノーオペレーションファンクタを定義した場合には、コードがかなり明確になるだろう。

+0

+1ですが、カッコのペアがありません。 – avakar

+0

@avakar:ありがとう、今修正されました。 –

+0

'function 'は暗黙的に 'function 'に変換されますか? –

関連する問題