私はライブラリを学んでいます。そのために、オブジェクトから値を抽出してに変換boost::lambda
するこのサンプルコードを書きました。vector<A>
vector<int>
A
class A
{
public:
A(int n) : m_n(n){}
int get() const {return m_n;}
private:
int m_n;
};
int _tmain(int argc, _TCHAR* argv[])
{
using namespace boost::lambda;
std::vector<A> a1;
std::vector<int> a2;
a1.push_back(A(10));
a1.push_back(A(20));
std::for_each(a1.begin(), a1.end(), bind(&std::vector<int>::push_back, var(a2), bind(&A::get, _1)));
return 0;
}
for_each
何度か試した後、パーツを機能させることができました。しかし、私はまだそれらの複数のバインドでそのようには見えません。これを書く他の方法はありますか?できれば次のようなことをしたいのですa2.push_back(bind(&A::get,_1));
が、それはコンパイルされません。