boost::bind
とSTLをboost::tuple
で使用しようとしていますが、コンパイルしようとする度に次のエラーが発生します。boost :: bindがboost :: tuple :: getで動作しない<N>()
error: call of overloaded ‘bind(<unresolved overloaded function type>,
boost::arg<1>&)’ is ambiguous
あなたは私がここで間違ってやっているか知っている、なぜboost::arg<1>
のためだけですか?
おかげ AFGここ
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <boost/tuple/tuple.hpp>
#include <boost/assign.hpp>
#include <boost/bind.hpp>
int main(int argc, const char** argv){
using namespace boost::assign;
typedef boost::tuple< int, double > eth_array;
std::vector<eth_array> v;
v+= boost::make_tuple(10,23.4), boost::make_tuple(12,24.4));
std::for_each(v.begin()
, v.end()
, boost::bind<int>(
printf
, "%d-%f"
, boost::bind(eth_array::get<0>, _1)
, boost::bind(eth_array::get<1>, _1)
)
);
'eth_array'とは何ですか? 'boost'名前空間に何か' get'がありませんか?この 'eth_array'名前空間/クラスではありませんか? –
auch ..コードのコピー中に変更されました。上記のサンプルで修正されました。 –