I’m having issues compiling some multi_index_container code after upgrading from
[...]
gcc 4.3.4 to gcc 4.6.1 and wondering if anyone can shed some light. Perhaps this
should be directed to gcc, but I have not been able to reduce this to not include multi_index.
The contrived code below is the furthest I have been able to reduce the problem so far:
The failures from gcc 4.6.1 are:boost/multi_index/detail/index_base.hpp: In function 'void foo() [with int T = 5]':
boost/multi_index/detail/index_base.hpp:49:47: error: 'typedef struct boost::multi_index::detail::index_node_base<Data, std::allocator<Data> > boost::multi_index::detail::index_base<Data, boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::composite_key<Data, boost::multi_index::member<Data, double, &Data::_d> > > >, std::allocator<Data> >::node_type' is protected
tstmi.cpp:24:10: error: within this context
This code appears to compile fine under 4.3.4 and would compile with 4.6.1 if the
useless template at line 18 was removed.