私はBoost :: bindとstd :: copyを使ってリストの値を出力しようとしています。明らかに、私はループを使うことができました。私は明確にするためにこれをやり遂げるかもしれませんが、私はここで間違っていることを知りたいです。ここでBoost :: bindとstd :: copy
は、私のコードの蒸留バージョンです:
#include <boost/bind.hpp>
#include <iterator>
#include <algorithm>
#include <list>
#include <iostream>
using namespace std;
using namespace boost;
int main(int argc, char **argv){
list<int> a;
a.push_back(1);
list< list<int> > a_list;
a_list.push_back(a);
ostream_iterator<int> int_output(cout,"\n");
for_each(a_list.begin(),a_list.end(),
bind(copy,
bind<list<int>::iterator>(&list<int>::begin,_1),
bind<list<int>::iterator>(&list<int>::end,_1),
ref(int_output)
) //compiler error at this line
);
return 0;
}
コンパイラエラーは、私はこれはバインドが何であるかを理解できないことを意味すると考える
error: no matching function call to bind(<unresolved overloaded function type> .....
をオフに開始します最も外側のバインドの戻り値の型は、次のようになります。私はそれを責めることはできないので、私はそれを責めません。何か案は?
iostreamと。、errorsが修正されました。 –
完全に動作します。ありがとう! –