http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50285
Bug #: 50285 Summary: no known conversion for argument 1: 'X' to 'X&' Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: mainm...@chello.at Please tell me I'm misreading the error message. g++ -v -save-temps -DHAVE_CONFIG_H -I. -I../../../../../../trunk/source/gepetto/database/access -I../../../.. -I../../../../../../trunk/source -isystem/home/anubis/CPP/boost-svn/ -O2 -g3 -Wall -Wno-long-long -Wfloat-equal -pedantic -ansi -MT test/test_unit__join-join.tc.o -MD -MP -MF test/.deps/test_unit__join-join.tc.Tpo -c -o test/test_unit__join-join.tc.o `test -f 'test/join.tc.cpp' || echo '../../../../../../trunk/source/gepetto/database/access/'`test/join.tc.cpp Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /build/src/gcc-4.6-20110819/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libssp --disable-libstdcxx-pch --enable-checking=release Thread model: posix gcc version 4.6.1 20110819 (prerelease) (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '../../../../../../trunk/source/gepetto/database/access' '-I' '../../../..' '-I' '../../../../../../trunk/source' '-isystem' '/home/anubis/CPP/boost-svn/' '-O2' '-g3' '-Wall' '-Wno-long-long' '-Wfloat-equal' '-pedantic' '-ansi' '-MT' 'test/test_unit__join-join.tc.o' '-MD' '-MP' '-MF' 'test/.deps/test_unit__join-join.tc.Tpo' '-c' '-o' 'test/test_unit__join-join.tc.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/cc1plus -E -quiet -v -I . -I ../../../../../../trunk/source/gepetto/database/access -I ../../../.. -I ../../../../../../trunk/source -MD test/test_unit__join-join.tc.d -MF test/.deps/test_unit__join-join.tc.Tpo -MP -MT test/test_unit__join-join.tc.o -dD -D_GNU_SOURCE -D HAVE_CONFIG_H -isystem /home/anubis/CPP/boost-svn/ ../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp -mtune=generic -march=x86-64 -ansi -Wall -Wno-long-long -Wfloat-equal -pedantic -g3 -fworking-directory -O2 -fpch-preprocess -o join.tc.ii ignoring nonexistent directory "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../x86_64-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: . ../../../../../../trunk/source/gepetto/database/access ../../../.. ../../../../../../trunk/source /home/anubis/CPP/boost-svn/ /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/x86_64-unknown-linux-gnu /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/backward /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/include /usr/local/include /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/include-fixed /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '../../../../../../trunk/source/gepetto/database/access' '-I' '../../../..' '-I' '../../../../../../trunk/source' '-isystem' '/home/anubis/CPP/boost-svn/' '-O2' '-g3' '-Wall' '-Wno-long-long' '-Wfloat-equal' '-pedantic' '-ansi' '-MT' 'test/test_unit__join-join.tc.o' '-MD' '-MP' '-MF' 'test/.deps/test_unit__join-join.tc.Tpo' '-c' '-o' 'test/test_unit__join-join.tc.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/cc1plus -fpreprocessed join.tc.ii -quiet -dumpbase join.tc.cpp -mtune=generic -march=x86-64 -auxbase-strip test/test_unit__join-join.tc.o -g3 -O2 -Wall -Wno-long-long -Wfloat-equal -pedantic -ansi -version -o join.tc.s GNU C++ (GCC) version 4.6.1 20110819 (prerelease) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.6.1 20110819 (prerelease), GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++ (GCC) version 4.6.1 20110819 (prerelease) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.6.1 20110819 (prerelease), GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 28ab00cbdb55abc964d7174615d645a6 In file included from ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex.h:11:0, from ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/ensemble.h:14, from ../../../../../../trunk/source/gepetto/database/access/test/../../access/ensemble.h:13, from ../../../../../../trunk/source/gepetto/database/access/test/../../access.h:8, from ../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp:9: ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h: In member function ‘gepetto::database::access::request::Tabex<E>& gepetto::database::access::request::Tabex<E>::operator=(const gepetto::database::access::request::Tabex<E>&) [with E = gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > >, gepetto::database::access::request::Tabex<E> = gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >]’: ../../../../../../trunk/source/gepetto/database/access/test/../../access/access.template.cpp:44:2: instantiated from ‘typename E::request_type gepetto::database::access::Access<E>::request(const typename E::gsql_type&) const [with E = gepetto::database::access::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename E::request_type = gepetto::database::access::request::Query<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >, typename E::gsql_type = gepetto::database::access::gsql::Query<gepetto::database::access::gsql::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, std::basic_string<char> > >]’ ../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp:48:190: instantiated from here ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:56:112: warning: no return statement in function returning non-void [-Wreturn-type] ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h: In member function ‘const typename E::metatable_t& gepetto::database::access::request::Tabex<E>::operator()() const [with E = gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename E::metatable_t = gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >]’: ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:54:67: instantiated from ‘gepetto::database::access::request::Tabex<E>::Tabex(const typename E::tabex_expression_t&) [with E = gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename E::tabex_expression_t = boost::variant<gepetto::database::access::request::Empty, gepetto::database::access::request::Table<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >, boost::shared_ptr<gepetto::database::access::request::join::JoinBinary<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > > >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>]’ ../../../../../../trunk/source/gepetto/database/access/test/../../access/access.template.cpp:35:2: instantiated from ‘typename E::request_type gepetto::database::access::Access<E>::request(const typename E::gsql_type&) const [with E = gepetto::database::access::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename E::request_type = gepetto::database::access::request::Query<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >, typename E::gsql_type = gepetto::database::access::gsql::Query<gepetto::database::access::gsql::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, std::basic_string<char> > >]’ ../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp:48:190: instantiated from here ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:62:3: error: no match for ‘operator=’ in ‘((const gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >*)this)->gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >::Table = boost::apply_visitor(Visitor&, Visitable&) [with Visitor = gepetto::database::access::request::Visitor_Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >, Visitable = const boost::variant<gepetto::database::access::request::Empty, gepetto::database::access::request::Table<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >, boost::shared_ptr<gepetto::database::access::request::join::JoinBinary<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > > >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, typename Visitor::result_type = gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >]((* &((const gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >*)this)->gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >::Expression))’ ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:62:3: note: candidate is: ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/metatable.h:32:29: note: gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >& gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >::operator=(gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >&) ../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/metatable.h:32:29: note: no known conversion for argument 1 from ‘boost::static_visitor<gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > > >::result_type {aka gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >}’ to ‘gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor, std::basic_string<char>, unsigned int, std::basic_string<char> > > >&’ This is really a problem of going from boost V1.47 to svn (development), but the relevant code section should not have changed and unless I'm misreading the error message GCC somehow cannot convert a type to itself.