Boost logo

Boost :

From: Yitzhak Sapir (ysapir_at_[hidden])
Date: 2002-02-04 14:34:53


Would it be possible to fix ob_call_traits so it reads:
template <typename T>
struct call_traits
{
private:
   typedef detail::call_traits_chooser<(is_pointer<T>::value,
is_reference<T>::value> chooser;
   typedef typename chooser::template rebind<T> bound_type;
   typedef typename bound_type::type call_traits_type;
public:
   typedef typename call_traits_type::value_type value_type;
   typedef typename call_traits_type::reference reference;
   typedef typename call_traits_type::const_reference const_reference;
   typedef typename call_traits_type::param_type param_type;
};
instead of:
template <typename T>
struct call_traits
{
private:
   typedef detail::call_traits_chooser<(is_pointer<T>::value ||
is_arithmetic<T>::value) && sizeof(T) <= sizeof(void*),
is_reference<T>::value> chooser;
   typedef typename chooser::template rebind<T> bound_type;
   typedef typename bound_type::type call_traits_type;
public:
   typedef typename call_traits_type::value_type value_type;
   typedef typename call_traits_type::reference reference;
   typedef typename call_traits_type::const_reference const_reference;
   typedef typename call_traits_type::param_type param_type;
};

There's a bug on MSVC 6.0 SP5 when you try to use it for long& (I think
it was long& that caused the problem).

Also, would you be interested in code that allows void returns for
functional.hpp on MSVC6.0 SP5?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk