Boost logo

Boost Users :

From: vvasta (vvasta_at_[hidden])
Date: 2002-01-02 10:52:15


Hi all,
I'm trying to use the iterator_adaptors class on Tru64. To make it
work I had to do the following changes:

In concept_check.hpp I had to change the code from this:

template <class Concept>
inline void function_requires()
{
#if !defined(NDEBUG)
  void (Concept::*x)() = BOOST_FPTR Concept::constraints;
  ignore_unused_variable_warning(x);
#endif
}

to this:

template <class Concept>
inline void function_requires(type<Concept> t = type<Concept>())
{
#if !defined(NDEBUG)
  void (Concept::*x)() = BOOST_FPTR Concept::constraints;
  ignore_unused_variable_warning(x);
#endif
}

because this compiler generates an error if a template parameter is
not used in the function declaration. In iterator_adaptors.hpp I had
to remove the parenthesis around all the if_true bool template
parameter from this:

       typedef typename if_true<( // original version
               ::boost::is_same<Value,typename
iterator_traits<Iterator>::value_type>::value
           )>::template then<
                typename iterator_traits<Iterator>::pointer,
                Value*
>::type pointer;
       
to this:

       typedef typename if_true< // Changed version no parenthesis
               ::boost::is_same<Value,typename
iterator_traits<Iterator>::value_type>::value
>::template then<
                typename iterator_traits<Iterator>::pointer,
                Value*
>::type pointer;

It is possible to put this changes in the original distribution in
order to avoid to put this changes in any new boost release I use ?

Thanks for your help
Vincenzo


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