> On Nov 18, 2016, at 12:53 PM, Alex Aycinena <alex.aycin...@gmail.com> wrote: > > > > On Thu, Nov 17, 2016 at 5:10 PM, John Ralls <jra...@ceridwen.us > <mailto:jra...@ceridwen.us>> wrote: > > > On Nov 17, 2016, at 4:54 PM, Alex Aycinena <alex.aycin...@gmail.com > > <mailto:alex.aycin...@gmail.com>> wrote: > > > > Hi, > > > > I get the following compile errors today: > > > <snip> > > > > Am I missing a library or something? > > Alex, > > That didn't take long! ;-) > > Only if your compiler doesn't support C++11. More likely your libstdc++ > doesn't pull in <Algorithms> when <String> is included. > > Travis puked test-backend-dbi-basic.c for a similar complaint, this one for > std::for_each. I've just pushed what I hope will fix that and your error. > > Regards, > John Ralls > > > John, > > After pulling in your push, I now get: > > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp: > In member function ‘StrVec GncDbiProviderImpl<T>::get_table_list(dbi_conn, > const string&) [with DbType T = (DbType)0; StrVec = > std::vector<std::__cxx11::basic_string<char> >; dbi_conn = void*; > std::__cxx11::string = std::__cxx11::basic_string<char>]’: > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp:245:71: > error: cannot convert ‘std::vector<std::__cxx11::basic_string<char> > >::iterator {aka > __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*, > std::vector<std::__cxx11::basic_string<char> > >}’ to ‘const char*’ for > argument ‘1’ to ‘int remove(const char*)’ > auto end = std::remove(list.begin(), list.end(), "sqlite_sequence"); > ^ > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp: > In member function ‘StrVec GncDbiProviderImpl<T>::get_table_list(dbi_conn, > const string&) [with DbType T = (DbType)2; StrVec = > std::vector<std::__cxx11::basic_string<char> >; dbi_conn = void*; > std::__cxx11::string = std::__cxx11::basic_string<char>]’: > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp:266:16: > error: ‘remove_if’ is not a member of ‘std’ > auto end = std::remove_if (list.begin(), list.end(), > ^~~ > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp: > In member function ‘bool GncDbiSqlConnection::table_operation(const StrVec&, > TableOpType)’: > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp:655:54: > error: no matching function for call to > ‘find(std::vector<std::__cxx11::basic_string<char> >::iterator, > std::vector<std::__cxx11::basic_string<char> >::iterator, > std::__cxx11::basic_string<char>&)’ > all_tables.end(), table) != all_tables.end()) > ^ > In file included from /usr/include/c++/6.2.1/bits/locale_facets.h:48:0, > from /usr/include/c++/6.2.1/bits/basic_ios.h:37, > from /usr/include/c++/6.2.1/ios:44, > from /usr/include/c++/6.2.1/istream:38, > from /usr/include/c++/6.2.1/sstream:38, > from > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/sql/gnc-sql-backend.hpp:35, > from > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-backend-dbi.hpp:37, > from > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.hpp:30, > from > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp:31: > /usr/include/c++/6.2.1/bits/streambuf_iterator.h:369:5: note: candidate: > template<class _CharT2> typename > __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, > std::istreambuf_iterator<_CharT> >::__type > std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, > const _CharT2&) > find(istreambuf_iterator<_CharT> __first, > ^~~~ > /usr/include/c++/6.2.1/bits/streambuf_iterator.h:369:5: note: template > argument deduction/substitution failed: > /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp:655:54: > note: ‘__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*, > std::vector<std::__cxx11::basic_string<char> > >’ is not derived from > ‘std::istreambuf_iterator<_CharT>’ > all_tables.end(), table) != all_tables.end()) > ^ > At global scope: > cc1plus: error: unrecognized command line option ‘-Wno-deprecated-register’ > [-Werror] > cc1plus: all warnings being treated as errors > Makefile:678: recipe for target 'gnc-dbisqlconnection.lo' failed > > > I'm building on Fedora 24, by the way.
Alex, My first guess would be that gnc-dbiproviderimpl.hpp and gnc-dbisqlconnection.hpp need the same treatment, to add "#include <algorithm> to the other libstdc++ headers. I'll have to set up a fedora24 VM to duplicate your build environment, so it will take a few hours to be sure. Regards, John Ralls _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel