同等のブースト機能の代わりに C++11 機能を使用するように、古いコードの一部を更新しています。ただし、順序付けされていないコンテナーやスマート ポインターのように、すべてが単純な名前空間の置き換えであるとは限りません。
たとえば、boost::function
メソッドはempty()
ありますclear()
が、std::function
ありません。
参照を置き換えるために使用してきたoperator()
定義済みの定義がありますが、参照を置き換えるには何を使用すればよいですか?std::function
empty()
clear()
std::function
代入演算子を使用して代入してクリアすることを検討しましたnullptr
が、基になる関数だけでなく、オブジェクトを使用できなくするという意図しない副作用があるのではないかと心配しています。
明らかに、より良い解決策は、再利用可能なメンバー関数オブジェクトのデフォルトの初期化です。これにより、ユーザーが提供したもので簡単に更新できる有効なコールバックが常に存在しますが、現在は以前の使用法を直接置き換えることを目指しているだけです。コードレビュー。