|
Boost Users : |
From: bert hubert (bert.hubert_at_[hidden])
Date: 2006-03-11 12:39:05
Hi,
Let me start off by saying that I consider multi_index to be the most
stunningly clever AND useful piece of c++ around. Thanks!
A PowerDNS user on RHEL 3 with a gcc that calls itself 'gcc 3.2.3' reports
the following error compiling PowerDNS snapshot 576
(http://svn.powerdns.com/snapshots/576/pdns-2.9.20.20060311.576.tar.gz):
Message:
http://mailman.powerdns.com/pipermail/pdns-users/2006-March/003134.html
mtasker.cc: In member function `bool MTasker<EventKey, EventVal>::schedule()
[with EventKey = PacketID, EventVal = std::string]':
pdns_recursor.cc:723: instantiated from here
mtasker.cc:286: no matching function for call to `boost::multi_index::multi_index_container<MTasker<PacketID,
std::string>::Waiter,
boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::member<MTasker<PacketID,
std::string>::Waiter, PacketID, &MTasker<PacketID,
std::string>::Waiter::key>, mpl_::na, mpl_::na>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<MTasker<PacketID,
std::string>::KeyTag, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>,
boost::multi_index::member<MTasker<PacketID, std::string>::Waiter, time_t,
&MTasker<PacketID, std::string>::Waiter::ttd>, mpl_::na>, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na>, std::allocator<MTasker<PacketID,
std::string>::Waiter> >::get()'
make[3]: *** [pdns_recursor.o] Error 1
make[3]: Leaving directory /temp/pdns-2.9.20.20060311.576/pdns'
To reproduce, download the tar file, run ./configure --with-modules="" ; cd
pdns ; make pdns_recursor, besides boost there are no dependencies when
compiled like this.
Relevant details from mtasker.hh
http://wiki.powerdns.com/projects/trac/browser/trunk/pdns/pdns/mtasker.cc?rev=576
60 struct KeyTag {};
61 typedef multi_index_container<
62 Waiter,
63 indexed_by <
64 ordered_unique<member<Waiter,EventKey,&Waiter::key> >,
65 ordered_non_unique<tag<KeyTag>, member<Waiter,time_t,&Waiter::ttd> >
66 >
67 > waiters_t;
68
69 waiters_t d_waiters;
>From mtasker.cc:
http://wiki.powerdns.com/projects/trac/browser/trunk/pdns/pdns/mtasker.hh?rev=576
285 typedef typename waiters_t::template index<KeyTag>::type waiters_by_ttd_index_t;
286 waiters_by_ttd_index_t& ttdindex=d_waiters.get<KeyTag>();
Any ideas, especially on a workaround? It compiles fine on all gcc's I have
access to.
Thanks!
-- http://www.PowerDNS.com Open source, database driven DNS Software http://netherlabs.nl Open and Closed source services
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net