Boost logo

Boost Users :

From: Mark Ruzon (ruzon_at_[hidden])
Date: 2007-08-16 16:23:24


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.


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