Hello Mark, ----- Mensaje original ----- De: Mark Schlegel <moschleg@verizon.net> Fecha: Jueves, Septiembre 20, 2007 11:24 pm Asunto: [Boost-users] [multi-index]/shared_ptr template issue - compiles on MSVC8 but not gcc Para: boost-users@lists.boost.org [...]
// this AGE_INDEX does not on gcc but DOES compile on MSVC8 typedef AgedMap<T>::AGEDMAPTYPE::index<agetag>::type AGE_INDEX;
The correct syntax is typedef typename AgedMap<T>::AGEDMAPTYPE::template index<agetag>::type AGE_INDEX; (note the intervening template keyword) which, just for succintness, in your particular ought to be the same, I think, as typedef typename MIContainer::template index<agetag>::type AGE_INDEX; The dependent template keyword can cause problems in non-conformant compilers. If you meet those, try the variants: typedef typename boost::multi_index::index< typename AgedMap<T>::AGEDMAPTYPE,agetag>::type AGE_INDEX; or typedef typename boost::multi_index::index< MIContainer,agetag>::type AGE_INDEX; Good luck, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo