I recently upgraded to 1.34.1, gcc 3.4.6, and certain new changes in multi_array don't make sense to me: In view.hpp: template <class BaseList> #ifdef BOOST_NO_SFINAE void #else typename disable_if<typename boost::is_integral<BaseList>::type,void >::type #endif reindex(const BaseList& values) { boost::function_requires< detail::multi_array::CollectionConcept<BaseList> >(); boost::detail::multi_array:: copy_n(values.begin(),num_dimensions(),index_base_list_.begin()); origin_offset_ = this->calculate_indexing_offset(stride_list_,index_base_list_); } multi_array_ref.hpp has a similar function except for the last function call. Both give me warnings because BOOST_NO_SFINAE is not defined, and so reindex has a non-void return type but does not actually return anything. I can get rid of it by #defining this constant, but it seems like a bug in the code. Will someone more knowledgeable shed some light on this, please? Do I need to #define BOOST_NO_SFINAE? Thanks, Mark Ruzon P.S. Apologies if this is the second post asking this question.