boost::bind または boost lambda ライブラリを使用して、引数を無視し、常に定数を返すファンクタを作成できますか?
たとえば、次と同等の動作を持つファンクタ:
int returnThree( SomeType arg ) { return 3; }
boost::bind または boost lambda ライブラリを使用して、引数を無視し、常に定数を返すファンクタを作成できますか?
たとえば、次と同等の動作を持つファンクタ:
int returnThree( SomeType arg ) { return 3; }
はい、使ってください
boost::phoenix::val(3);
Coliruでライブを見る
#include <boost/phoenix.hpp>
namespace p = boost::phoenix;
using namespace p::arg_names;
int main()
{
auto p = p::val(42);
return p() + p(/*ignored:*/77);
}
これは終了84
コードとして返されます。
seheの回答に対するBarryのコメントから:
#include "boost/lambda/lambda.hpp"
...
auto returnThree = boost::lambda::constant(3);