 )
 )Ein paar Dinge zur Klarheit:
Code: Alles auswählen
typedef Dedupe::Dataholding::Variant::Data * Value;
typedef std::map<std::string,Value> Row;
typedef std::vector<Row> Result;Code: Alles auswählen
Dedupe::FileStream Dataholding::FileGetter()
{
  Dedupe::FileStream ReturningStream;
  std::for_each( ReturningTable.begin(), ReturningTable.end(), boost::bind( Dataholding::TranslateSqlTableToFileInfo,  ReturningStream, _1 ) );
  return ReturningStream;
}über boost::bind mit dieser Funktion
Code: Alles auswählen
static void TranslateSqlTableToFileInfo( SqliteWrapper::Row Incoming,
                                          Dedupe::FileStream Output );Code: Alles auswählen
In file included from /usr/include/boost/bind.hpp:22:0,
                 from /home/bernhard/Programmieren/dedupe/trunk/dataholding/dataholding.h:13,
                 from /home/bernhard/Programmieren/dedupe/trunk/dataholding/dataholding.cpp:9:
/usr/include/boost/bind/bind.hpp: In member function ‘void boost::_bi::list2<A1, A2>::operator()(boost::_bi::type<void>, F&, A&, int) [with F = void (*)(std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>, std::vector<Dedupe::FileInfo>), A = boost::_bi::list1<std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>&>, A1 = boost::_bi::value<std::vector<Dedupe::FileInfo> >, A2 = boost::arg<1>]’:
/usr/include/boost/bind/bind_template.hpp:32:59:   instantiated from ‘boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(A1&) [with A1 = std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>, R = void, F = void (*)(std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>, std::vector<Dedupe::FileInfo>), L = boost::_bi::list2<boost::_bi::value<std::vector<Dedupe::FileInfo> >, boost::arg<1> >, boost::_bi::bind_t<R, F, L>::result_type = void]’
/usr/include/c++/4.6/bits/stl_algo.h:4379:2:   instantiated from ‘_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator<std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>*, std::vector<std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*> > >, _Funct = boost::_bi::bind_t<void, void (*)(std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>, std::vector<Dedupe::FileInfo>), boost::_bi::list2<boost::_bi::value<std::vector<Dedupe::FileInfo> >, boost::arg<1> > >]’
/home/bernhard/Programmieren/dedupe/trunk/dataholding/dataholding.cpp:95:142:   instantiated from here
/usr/include/boost/bind/bind.hpp:313:9: error: could not convert ‘(& a)->boost::_bi::list1<A1>::operator[] [with T = std::vector<Dedupe::FileInfo>, A1 = std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>&]((* &((boost::_bi::list2<boost::_bi::value<std::vector<Dedupe::FileInfo> >, boost::arg<1> >*)this)->boost::_bi::list2<boost::_bi::value<std::vector<Dedupe::FileInfo> >, boost::arg<1> >::<anonymous>.boost::_bi::storage2<boost::_bi::value<std::vector<Dedupe::FileInfo> >, boost::arg<1> >::<anonymous>.boost::_bi::storage1<boost::_bi::value<std::vector<Dedupe::FileInfo> > >::a1_))’ from ‘std::vector<Dedupe::FileInfo>’ to ‘std::map<std::basic_string<char>, Dedupe::Dataholding::Variant::Data*>’
 
 Danke





 Und denk dran, ich benutzte noch keine Features aus dem neuen Standard, sonst würde ich momentan viel zu viele Kompiler ausschließen. Darüber könnte man sich mal Gedanken machen, aber momentan bin ich beim "alten" C++. Das sind immer so einfache banale Fehler, aber ab einer bestimmten länge der Fehlermeldungen, bin ich immer überfordert, weil es total unübersichtlich wird. Hier die aktuelle Fehlermeldung:
 Und denk dran, ich benutzte noch keine Features aus dem neuen Standard, sonst würde ich momentan viel zu viele Kompiler ausschließen. Darüber könnte man sich mal Gedanken machen, aber momentan bin ich beim "alten" C++. Das sind immer so einfache banale Fehler, aber ab einer bestimmten länge der Fehlermeldungen, bin ich immer überfordert, weil es total unübersichtlich wird. Hier die aktuelle Fehlermeldung: