Hi, I can't figure out why the following code generates a compile error with gcc 3.4: #include <boost/mpl/vector_c.hpp> #include <boost/mpl/at.hpp> #include <boost/tuple/tuple.hpp> template<typename E,typename T> typename boost::tuples::element<boost::mpl::at_c<E,0>::type::value,T>::type foo(E e,T t) { return t.get<0>(); } int main() { typedef boost::mpl::vector_c<int,0,1> elements; boost::tuple<int> t(1); foo(elements(),t); } main.cpp: In function `typename boost::tuples::element< boost::mpl::at_c<E,0l>::#`typename_type' not supported by pp_cxx_unqualified_id#::value, T>::type foo(E, T)': main.cpp:10: error: expected primary-expression before ')' token main.cpp: In function `typename boost::tuples::element< boost::mpl::at_c<E,0l>::#`typename_type' not supported by pp_cxx_unqualified_id#::value, T>::type foo(E, T) [with E = boost::mpl::vector_c<int, 0l, 1l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l, 2147483647l>, T = boost::tuples::tuple<int, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>]': main.cpp:17: instantiated from here main.cpp:10: error: invalid use of member (did you forget the `&' ?)